【发布时间】:2012-10-05 09:42:10
【问题描述】:
将以下 matlab 行转换为 C++ 时遇到困难:
for i=1:height
for j=1:width
if (match == 0)
[min_w, min_w_index] = min(w(i,j,:));
mean(i,j,min_w_index) = double(data(i,j));
sd(i,j,min_w_index) = sd_init;
end
rank = w(i,j,:)./sd(i,j,:);
rank_ind = [1:1:C];
end
end
特别是我不知道如何隐藏“min_w_index”部分。有人可以在这一点上帮助我吗?
【问题讨论】:
-
你知道 matlab 应该用 [a,b] = min(...) 做什么吗?
-
是的,它正在寻找最小值,然后我认为将最小值分配给“a”,并将其索引分配给“b”。但我的问题是,我不知道如何转换“索引”部分。
-
第一部分你是怎么做的? (当然,我可以为您提供答案,但我相信您能够自己弄清楚)
-
我将通过“for (int k=1;k
-
嗯,我正在写一个答案,但丹尼尔更快 ;-) 我同意他的观点,这是正常的方式。或者,您可以使用 std::find。语法稍微取决于您使用的数组类型,因此如果您有兴趣,需要将其添加到问题中
标签: c++ matlab for-loop type-conversion