Hi all, I leaning matlab thru practice and patience, I have the following dataset with sunspot observations for 38 years. I am trying to get the average of months 12,1,2 per year. I was using the code below but I am getting the following error message. " Undefined operator '>=' for input arguments of type 'table'."
Any advise will be greatly appreciated.
IDX=data(:,3) >= 5;
fdata = data(idx,:);
iex = fdata(:,3) <= 7;
fildata = fdata(iex,:);
year = fildata(:,2);
avr = accumarray(year,fildata(:,1))./3;
idx = avr(:,1) > 0;
avr = avr(idx,1);

댓글 수: 4

Would you mind sharing what does the data look like? Run:
>> data(1:10, :)
and put the result here.
Also, what command are you using to load the data? Is it from an Excel file?

I used the import tool build up on matlab

sunspot1(1:10, :)
ans =
10×3 table
Year month sunspot
____ _____ _______
1980 12 246.9
1981 1 156.6
1981 2 189.9
1981 3 196.6
1981 4 225.3
1981 5 194.7
1981 6 131.6
1981 7 205.3
1981 8 242.5
1981 9 245.3
Those are the results of that approach
Artemio Soto Breceda
Artemio Soto Breceda 2019년 10월 24일
편집: Artemio Soto Breceda 2019년 10월 24일
Ah, thanks. I hadn't seen that you included your xlsx file in the post. See my answer below.

댓글을 달려면 로그인하십시오.

 채택된 답변

Artemio Soto Breceda
Artemio Soto Breceda 2019년 10월 24일

0 개 추천

You have two options, to convert your table into an array with:
data_array = data{:,:};
or to use the same expression, but with curly braces, like this:
IDX = data{:,3} >= 5; % The curly braces do what you want

추가 답변 (0개)

카테고리

도움말 센터 및 File Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by