MATLAB Answers

0

inserting rows in a matrix

Asked by Ali Ekhtiari on 3 Sep 2019
Latest activity Commented on by Andrei Bobrov
on 4 Sep 2019
The matrix has 365 rwos and one column(365*1).
I want to add 24 zero rows below the every row. If I want to explain more, I would say, I have daily average of a year (365 days), then I want to change this 365 days to 8760 rwos to put each number with 24 rows distance in between of each number in new matrix.
How can I do this?
Thanks

  0 Comments

Sign in to comment.

4 Answers

Andrei Bobrov
Answer by Andrei Bobrov
on 3 Sep 2019

kron(yourmatrix(:),[1;zeros(24,1)]);

  0 Comments

Sign in to comment.


Steven Lord
Answer by Steven Lord
on 3 Sep 2019

Are you trying to turn daily data into hourly data? If so, consider making datetime vectors for each day and each hour and passing those (along with your daily data) into interp1, like the "Interpolation of Dates and Times" example on the interp1 documentation page shows. Alternately if you're storing your data in a timetable call retime on it.

  1 Comment

Andrei Bobrov
on 4 Sep 2019
+1

Sign in to comment.


Answer by Walter Roberson
on 3 Sep 2019

reshape([YourMatrix.'; zeros(24, 365)], [], 1)

  0 Comments

Sign in to comment.


Answer by madhan ravi
on 3 Sep 2019
Edited by madhan ravi
on 4 Sep 2019

Wanted=zeros(365*25,1);
Wanted(1:25:end) = yourmatrix

  2 Comments

I think you have an off-by-one error. According to the description, they want 24 rows of zeros below each row, which would make a total of 25 for the group.
madhan ravi
on 4 Sep 2019
Ah thank you sir Walter, I was confused when the OP mentioned 8760 and then reading it again the first line states 24 zeros rows after each ..

Sign in to comment.