Extra term in "min" function in while loop
2 次查看(过去 30 天)
显示 更早的评论
I was given a piece of code to work on and edit but I'm running into a few errors because I am unsure what this extra piece of term means in the code, the code looks like this:
while DC1(1,j) ~= min(DC1(:,450:Xep)),DC1(1,j);
Xbp = j;
j=j+1;
end
I can understand the fact that DC1 is searching for the position of the minimum value term in itself by comparing it using the "min" function. What I do not understand is why there is that extra
",DC1(1,j)" bit. Do you know what it is? Thanks.
0 个评论
采纳的回答
Roger Wohlwend
2014-5-27
The min function compares the vector DC1(:,450:Xep) to the scalar DC1(1,j). The result is a vector that is identical to DC1(:,450:Xep) except that all values that are greater than DC1(1,j) are replaced by DC1(1,j). Then this vector is compared to DC(1,j).
If Xep > 451 then DC1(:,450:Xep) is a vector and as I just wrote the result of the min function is a vector. When you compare a scalar to a vector you get a vector of logical values, but to control a loop you should not use a vector of logicals but only one single logical. If you provide a vector, I'm not completely sure, what Matlab does. I would avoid it because you risk that the code does not always do what it should. Perhaps the guy who wrote the code meant something like this:
while DC(1,j) ~= min(DC1(:,450:Xep))
That would make more sense.
更多回答(2 个)
George Papazafeiropoulos
2014-5-27
The extra
,DC1(1,j)
bit is the next command. You can erase the initial comma and press enter to get it in the next line.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!