without using loops

1 次查看(过去 30 天)
osman
osman 2011-10-4
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 个评论
osman
osman 2011-10-4
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 2011-10-4
[m n] = size(x)
ind = sub2ind([m n],idx,1:n)
xout = x(ind)
yout = y(ind)

请先登录,再进行评论。

采纳的回答

Andrei Bobrov
Andrei Bobrov 2011-10-4
[yuk,idx] = max(z)
  1 个评论
Daniel Shub
Daniel Shub 2011-10-4
Wow, nice job piecing that together from the question.

请先登录,再进行评论。

更多回答(1 个)

osman
osman 2011-10-4
thanks

类别

Help CenterFile Exchange 中查找有关 NaNs 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by