フィルターのクリア

Vertical to horizontal data

2 ビュー (過去 30 日間)
Ana
Ana 2014 年 4 月 26 日
コメント済み: Ana 2014 年 4 月 26 日
Hello,
I have a column of data with several rows (about 125000).
I want to copy that data, every 62 rows, to separate columns. So I would have from row 1 to 62 in column A, from row 63 to 125 in column B, from row 126 to 188 in column C and so on until there is no more data.
Is there an easy way to do this? Thank you so much in advance! (I'm new in matlab)

採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2014 年 4 月 26 日
a=rand(12500,1); % Example
n=numel(a);
ii=mod(-n,62),
a(end+1:end+ii)=nan
out=reshape(a,62,[])
  1 件のコメント
Ana
Ana 2014 年 4 月 26 日
Works perfectly, thank you so much!!

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

その他の回答 (2 件)

the cyclist
the cyclist 2014 年 4 月 26 日
You probably want the reshape() function.
doc reshape
for syntax details.

Salaheddin Hosseinzadeh
Salaheddin Hosseinzadeh 2014 年 4 月 26 日
As mentioned, you need to reshape the matrix, but for your data size, which is 125000, since it's not a multiply of 62 you need to pad it with (54) zeros and then reshape it
roughly it's gonna be like
data(1,end:end+54) = 0; % adds 54 zeros to the end of data to be multiply of 62
reshape(data,[],62);
I didn't check the code, might have minor problems ;)

カテゴリ

Help Center および File ExchangeMatrices and Arrays についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by