在Matlab中循环基本

时间:2015-02-13 23:41:19

标签: matlab for-loop vector minimum

我在Matlab中有一个简单的问题。如何创建一个for循环,它将从结果最小的向量中选择值,并将所选的值从vector写入.txt文件?例如,如果我有:

T = 100;
W = 20;
h = [h1 h2 h3 ... ];
y = 2*T*W/h;

我想创建一个循环,它将向向量h搜索一个值,该值将提供y的最小值并将所选的h写入.txt文件。 任何帮助将不胜感激。感谢

1 个答案:

答案 0 :(得分:0)

For loop:

min_y = 2*T*W/h(1);
h_chosen = 1;
for i = 2:length(h)
  if min_y > 2*T*W/h(i)
    min_y = 2*T*W/h(i);
    h_chosen = i;
  end
end

比for-loop快得多:

[~, idx] = min(arrayfun(@(i) 2*T*W/h(i), 1:length(h)));
h_chosen = h(idx);

写入.txt文件:(http://www.mathworks.com/help/matlab/ref/fprintf.html

fileID = fopen('min_h.txt','w');
fprintf(fileID, '%d\n', h_chosen);