without using loops

1 Ansicht (letzte 30 Tage)
osman
osman am 4 Okt. 2011
i have a large scale of data. i need to do the following job without using loops
z=[1,2,3,4;5,18,7,8;12,16,35,-8];
yuk=max(z(:,1:end));
i want to search "yuk" vectors elements in the "z" matrice. but i want to search yuk(1) only for first column of the z matrice , the yuk(2) to the second column of the matrice and so on. how can i do that
thanks
  2 Kommentare
osman
osman am 4 Okt. 2011
x=[2,3,4,5;1,3,2,5;8,7,6,5];
y=[-1,2,3,6;8,6,7,5;10,11,12,18];
z=[1,2,3,4;5,18,7,8;12,16,35,-8];
[yuk,idx]=max(z) %as andrei says (http://www.mathworks.com/matlabcentral/answers/17409-without-using-loops)
here z is a function of x and y and the question is to find which corresponds to the max z in each column in the matrices x and y
in short i need to find elements of matrices in each column using idx without using loops For example in the 1. colum max z is 12 and find x is 8 y is 10
Andrei Bobrov
Andrei Bobrov am 4 Okt. 2011
[m n] = size(x)
ind = sub2ind([m n],idx,1:n)
xout = x(ind)
yout = y(ind)

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 4 Okt. 2011
[yuk,idx] = max(z)
  1 Kommentar
Daniel Shub
Daniel Shub am 4 Okt. 2011
Wow, nice job piecing that together from the question.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

osman
osman am 4 Okt. 2011
thanks

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by