フィルターのクリア

Repeat each page of 3d matrix 24 times

3 ビュー (過去 30 日間)
Grant
Grant 2013 年 4 月 29 日
So as part of a script I have:
totmelt(:,:,day)=daymelt2;
Daymelt2 is a 2d matrix, and day is the day of the year (1:365). As it stands I get a 3d matrix with 365 in the 3rd dimension, or 365 pages. But I need the output for each day to be repeated 24times in consecutive pages. So the first 24 pages are the first daymelt2 matrix, the next 24 the the second daymelt2 matrix.
Is there a way I can do this? Without post-processing by extracting every single page and using repmat.
Thank you
  2 件のコメント
Walter Roberson
Walter Roberson 2013 年 4 月 29 日
So you want the output to be size(daymelt2,1) x size(daymelt2,2) x 365 x 24 ? Or size(daymelt2,1) x size(daymelt2,2) x (365*24) ?
Grant
Grant 2013 年 4 月 29 日
Currently my output is 420 x 540 x 365. I want it to be 420 x 540 x 8760 - with pages 1:24 being repeats of orignal page 1, 25:48 being repeats of orignal page 2, and so on.
(It probably won't be 365 as my computer won't handle it, but for sake of discussion don't see should make difference. - could be 10 pages becoming 240)
Thanks

サインインしてコメントする。

採用された回答

Jan
Jan 2013 年 4 月 29 日
Perhaps you want:
totmelt = repmat(daymelt2, 1, 1, 24*365);
Or:
totmelt = zeros(M, N, 24, 365); % With matchin M and N
...
totmelt(:, :, :, day) = repmat(daymelt2, 1, 1, 24);
...
totmelt = reshape(totmelt, M, N, 24*365);
  2 件のコメント
Bård Skaflestad
Bård Skaflestad 2013 年 4 月 29 日
As you only need to repeat each page a fixed (and equal) number of times, you can also do something like this:
totmelt = % construct as normal
p = reshape(repmat(1:365, [24, 1]), [], 1);
totmelt = totmelt(:,:,p);
Grant
Grant 2013 年 4 月 29 日
I think this has done what I want Bard, thank you.
And thanks all.

サインインしてコメントする。

その他の回答 (1 件)

Andrei Bobrov
Andrei Bobrov 2013 年 4 月 29 日
out = totmelt( :,:,kron(1:size(totmelt,2), ones(1,24)) );

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by