I have this code so far:
for i = 7:length(mydata)
index = find (mydata{i,1}(:,5))== 0
end
However, this returns all the zeros in the whole matrix, I require a cell reference in column 5 as to when the first 0 occurs.

4 Kommentare

This is not clear
I have a matrix and in column 5 I want to find the peak value in the first phase until the numbers change to 0.
So I was trying to find the cell reference of when the first 0 in the column occurs so I can find the peak value from cell 1 to the reference I found.
%% Calculate peak power
[row col] = ((mydata{i,1}(:,5))== 0,'first'); % finding the cell which is first 0 in column
pp(i,1) = nanmin (mydata {i,1}(:,5)); % finding peak power
pp is finding the peak power in the whole of column 5 however I want to find the first zero then find peak power up to this point
Christopher Pedersen
Christopher Pedersen am 24 Apr. 2014
Bearbeitet: Christopher Pedersen am 24 Apr. 2014
Finding the first zero: you can use additional inputs to "find", to only return the first value found:
loc = find(x==0,1,'first') returns the 1 first times x==0
or loc = find(x==0); loc = loc(1); returns all the occurences of zero, then extracts the first.
Extracting values up to the first zero: y = x(1:loc);

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

per isakson
per isakson am 24 Apr. 2014
Run this
ixc = 3; % third column
sample_array = num2cell( magic(4)-3 );
is = cell2mat( sample_array( :, ixc ) ) == 0;
>> sample_array
sample_array =
[13] [-1] [ 0] [10]
[ 2] [ 8] [ 7] [ 5]
[ 6] [ 4] [ 3] [ 9]
[ 1] [11] [12] [-2]
>> is
is =
1
0
0
0

Weitere Antworten (0)

Kategorien

Mehr zu MATLAB 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!

Translated by