finding values from matrix
显示 更早的评论
Dear All
I have a matrix which is given by A= [20 140]. I want to find the location of elements in A which are greter than 45. Here is the matlab script which I tried to work upon but it gives me the whole value rather than location with respect to each coumn.
for i = 1:20
Loc(ii,:)= find(A(i,:)>45);
end
Thank you for your help
回答(3 个)
Azzi Abdelmalek
2013-7-15
编辑:Azzi Abdelmalek
2013-7-15
out=A(A>45)
If you want the location:
idx=find(A>45) % corresponding indices
out=A(idx)
3 个评论
Ede gerlderlands
2013-7-15
Azzi Abdelmalek
2013-7-15
Ok
A=randi(200,5) % Example
[ii,jj]=find(A>45)
Azzi Abdelmalek
2013-7-15
编辑:Azzi Abdelmalek
2013-7-15
A=[0 46 10 1; 47 5 48 5; 3 19 25 70]
out=arrayfun(@(x) max(find(A(x,:)>45)),1:size(A,1))
Matt J
2013-7-15
[i,j]=find(A>45);
7 个评论
Ede gerlderlands
2013-7-15
Show us the desired output for this small example matrix
A=[0 46 10 1; 47 5 48 5; 3 19 25 70]
And explain what form the output should take (cell, matrix, structure, etc...)
Ede gerlderlands
2013-7-15
Matt J
2013-7-15
The example matrix I gave you has 4 columns...
Ede gerlderlands
2013-7-15
Matt J
2013-7-15
for k=1:size(A,1)
S(k).locs = find(A(k,:)>45);
end
Edwin Herrera Vasco
2020-5-4
Thanks!!!
Iain
2013-7-15
A = [45 46; 42 43];
logical_address = A>45;
A(logical_address) %gives you a single 46.
linear_index = find(logical_address);
A(linear_index) % gives you a single 46.
[rowno, colno ] = sub2ind(size(A),linear_index);
A(rowno,colno ) % gives you a single 46
Looking at your code, I think you're trying to do that row by row.
find(A(i,:)>45) will give a vector containing the column number of each column which is >45 in that row of A - the length of this may vary from row to row, so you can't store the result in a simple vector - you'd need to use a cell array.
类别
在 帮助中心 和 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!