필터 지우기
필터 지우기

creating vector arrays from data set

조회 수: 10 (최근 30일)
Chet Sharma
Chet Sharma 2018년 1월 12일
편집: Chet Sharma 2018년 1월 14일
Hi I have an hourly data set of electric load by day. E.g. for each day of Jan'00; I have 24 hours of electric load.I would like to create 31 separate vectors of length 24 (for each hour of the day) to hold the demand data for each day.
Here's my attempt:
numRows = length(dataset);
j=1
for i= 1:16:numRows
[day.j]=ds2.Demand(i:i+16,1);
j=j+1
end
I'm not sure how to create the right index for the d's. It should look like; d1 = (Hour1, Hour2...Hour 24), first day of data d2 = (Hour1, Hour2, ....Hour 24) of the second day of data
and so on and so forth...
Any suggestions on how to go? Thanks! C
  댓글 수: 5
Chet Sharma
Chet Sharma 2018년 1월 13일
Chet Sharma
Chet Sharma 2018년 1월 13일
Given that the ultimate aim is to chart by the column dOw, would it not be possible to write something like: plot(ds2.Demand,ds2.Hour,ds2.dos==2); Ideally, a chart for each separate day is what I'll need....I'm sure there's an easy trick...finding it hard to find as I'm rather new.

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

답변 (2개)

Ahmos Sansom
Ahmos Sansom 2018년 1월 13일
Hey,
Maybe convert column 2 to matlab datetime t = datetime(X,'ConvertFrom','Excel')
Then you cold select the data where weekday = 6 or Hour = 21 etc.
find(weekday(t) ==6)
This will give the index and then you can plot the respective values.
  댓글 수: 1
Chet Sharma
Chet Sharma 2018년 1월 13일
편집: Stephen23 2018년 1월 14일
Thanks sir - I tried this, and it seems to work:
delete(findall(0,'Type','figure'))
figure,hold on;
count=1;
x=linspace(1,24,24);
for i=1:24:744
plot(x,ds2.mwh(i:i+23,1));
% day{count}=ds2.mwh(i:i+23,1);
count=count+1
legend('show');
end
xlim([1 24]);
hold off;
count
Now, I just need to extend it for the entire dataset, which has 12 months.

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


Chet Sharma
Chet Sharma 2018년 1월 14일
편집: Chet Sharma 2018년 1월 14일
I think all answeres were useful here...so do I accept all answers (that were not provided by me, I mean)?
On another note, I found this awesome API called "plotly" (for those of you smiling, please be patient...I'm very new and still discovering), and it makes some solid interactive charts!
delete(findall(0,'Type','figure'))
figure,hold on;
count=1;
x=linspace(1,24,24);
for i=1:24:744
plot(x,ds.load(i:i+23,1));
% day{count}=ds2.mwh(i:i+23,1);
count=count+1;
legend('show');
end
xlim([1 24]);
fig=fig2plotly(gcf);
hold off;

카테고리

Help CenterFile Exchange에서 Tall Arrays에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by