am trying to get the non zero minimum values from all the rows. Am getting the correct minimum values but the indices for minimum values for the first and second rows are wrong. Suggest me where I am wrong
Ältere Kommentare anzeigen
C=[0,10,8,9,7;10,0,10,5,6;8,10,0,8,9;9,5,8,0,6;7,6,9,6,0]; j=5; for n=1:j e=C(n,:); [M(n),I(n)]=min(e(e>0)); end disp(M); disp(I);
Akzeptierte Antwort
Weitere Antworten (1)
There is no point in wasting your time writing ugly for loops, because the MATLAB function min does exactly what you want already, much more efficiently than anything you could write using a loop:
>> C = [0,10,8,9,7;10,0,10,5,6;8,10,0,8,9;9,5,8,0,6;7,6,9,6,0];
>> C(C==0) = NaN; % convert zeros to NaN
>> [val,idx] = min(C,[],1)
val =
7 5 8 5 6
idx =
5 4 1 2 2
And that is all. MATLAB is a neat high-level language, so it should not be written as if it was an ugly low-level language like C++.
Kategorien
Mehr zu Interpolation of 2-D Selections in 3-D Grids finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!