Filter löschen
Filter löschen

finding values from matrix

258 Ansichten (letzte 30 Tage)
Ede gerlderlands
Ede gerlderlands am 15 Jul. 2013
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

Antworten (3)

Azzi Abdelmalek
Azzi Abdelmalek am 15 Jul. 2013
Bearbeitet: Azzi Abdelmalek am 15 Jul. 2013
out=A(A>45)
If you want the location:
idx=find(A>45) % corresponding indices
out=A(idx)
  3 Kommentare
Azzi Abdelmalek
Azzi Abdelmalek am 15 Jul. 2013
Ok
A=randi(200,5) % Example
[ii,jj]=find(A>45)
Azzi Abdelmalek
Azzi Abdelmalek am 15 Jul. 2013
Bearbeitet: Azzi Abdelmalek am 15 Jul. 2013
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))

Melden Sie sich an, um zu kommentieren.


Matt J
Matt J am 15 Jul. 2013
[i,j]=find(A>45);
  7 Kommentare
Matt J
Matt J am 15 Jul. 2013
for k=1:size(A,1)
S(k).locs = find(A(k,:)>45);
end
Edwin Herrera Vasco
Edwin Herrera Vasco am 4 Mai 2020
Thanks!!!

Melden Sie sich an, um zu kommentieren.


Iain
Iain am 15 Jul. 2013
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.

Kategorien

Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by