How to set Time Axis
4 ビュー (過去 30 日間)
古いコメントを表示
Abhishek Savita
2017 年 12 月 15 日
コメント済み: Abhishek Savita
2017 年 12 月 20 日
Hi Folks
I have a data in which time axis set in following format
ncdisp('myfile.nc')
time
Size: 39x1
Dimensions: time
Datatype: single
Attributes:
standard_name = 'time'
long_name = 'time'
units = 'months since 1970-01-01 00:00:00'
axis = 'T'
climatology = 'climatology_bounds'
year=ncread('myfile.nc','time')
year=
9×1 single column vector
6
18
30
42
54
66
78
90
102
114
126
138
150
162
174
186
198
210
222
234
246
258
270
282
294
306
318
330
342
354
366
378
390
402
414
426
438
450
462
But i want to convert variable year(6,18,30,...,462) to year(1:39), which represent 1 as 1970 and 39 as 2008;
I mean
year(1)=1970
year(2)=1971
.
.
.
year(39)=2008
Could you please suggest me, how can I make it ?
Thanks in advance
0 件のコメント
採用された回答
Walter Roberson
2017 年 12 月 20 日
ncmon = ncread('myfile.nc','time');
year = 1970 + floor((ncmon - 1) / 12);
3 件のコメント
Walter Roberson
2017 年 12 月 20 日
ncmon = ncread('myfile.nc','time');
year_index = 1 + floor((ncmon - 1) / 12);
calendar_year = 1970 + year_index - 1;
ohc_18_new=h18_hc(:,:,:,year_index);
その他の回答 (1 件)
James Knowles
2017 年 12 月 20 日
I am sure there is a more elegant and simpler solution out there but this will function as you desire.
year = [6
18
30
42
54
66
78
90
102
114
126
138
150
162
174
186
198
210
222
234
246
258
270
282
294
306
318
330
342
354
366
378
390
402
414
426
438
450
462];
YEAR = zeros(39,1); %this will become the vector you desire
for i=1:39
years_passed = floor(year(i)/12);
YEAR(i) = 1970+years_passed;
end
0 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!