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개)
lvn
2014년 5월 27일
I guess it is a remainder of some old code. It can be removed, it does nothing!
댓글 수: 0
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!