Info

Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.

Error in locating a reference cell for calculations

1 Ansicht (letzte 30 Tage)
Adrienne
Adrienne am 14 Mai 2014
Geschlossen: MATLAB Answer Bot am 20 Aug. 2021
So far I have got this code:
%%=================================================
%%to find average power first use "find" function to find the first zero in
%%Fz, have the cell referenced
%%then use nanmean for average power(av_pwr)
%%use nanmin for peak power (peak_pwr)
%%=================================================
ref= find(data{i,1}(:,5)==0);
ref=ref(1);%returns all times zero occurs then extracts first time data is 0
peak_pwr(i,1) = nanmin (data {i,1}(1:ref,5));
%preak power in coloumn E1 in all data with reference to cell found
av_pwr(i,1)=nanmean(data{i,1}(1:ref,5));
%average power in coloumn E1 in all data with reference to cell found
I have tried to locate the first zero in column E1 and then use this as a reference cell to get the peak and average power. However it is coming up with this error:
Attempted to access ref(1); index out of bounds because numel(ref)=0.
Error in code (line 53) ref=ref(1);%returns all times zero occurs then extracts first time data is 0
anyone know how to get around this?

Antworten (1)

David Sanchez
David Sanchez am 14 Mai 2014
If you read the line:
Attempted to access ref(1); index out of bounds because numel(ref)=0.
you can see that
data{i,1}(:,5)==0
is never fulfilled and therefore, ref remains an empty array with no values in it.
When you tried to access its first value:
ref=ref(1)
the system complains (yields an error) because there is nor such an element. Since I do not have data, it is nor easy to tell whether any of its elements equals 0 in any moment.
  5 Kommentare
David Sanchez
David Sanchez am 14 Mai 2014
how are you reading the CSV file?
Adrienne
Adrienne am 14 Mai 2014
(i) is for the loop so that it stores the information rather than write over it each time as I have to know all the data for each 81 jumps. i had trouble reading them in so I had to do it like this:
i=1:njump;
x=sprintf('Trial%02d.csv',i),sprintf('Trial%02d',i),'A1:E7000';;% jump data
data{i}=xlsread(x,'A1:E7000');
% code
end

Diese Frage ist geschlossen.

Community Treasure Hunt

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

Start Hunting!

Translated by