Extract columns in a loop

4 ビュー (過去 30 日間)
Francis Herman
Francis Herman 2017 年 9 月 19 日
回答済み: Walter Roberson 2017 年 9 月 19 日
Hello, I am trying to extract every 2000 rows in a 20000 row column and place each extracted matrix into a separate column to create a 2000x10 matrix. However, I am getting an error: In an assignment A(:) = B, the number of elements in A and B must be the same. Any ideas?
Test=zeros(2000,10);
for w=1:10
Test(w)=zt3((2000.*(w-1))+1:2000.*w,1:1)
end

採用された回答

OCDER
OCDER 2017 年 9 月 19 日
編集済み: OCDER 2017 年 9 月 19 日
Is this what you want to do?
zt3 = [1:20000]'; %assuming zt3 is a 20000x1 matrix
Test = reshape(zt3, 2000, 10);
%Takes row 1:2000, 2001:4000, etc and stores each in a column in a new matrix.
  4 件のコメント
Francis Herman
Francis Herman 2017 年 9 月 19 日
Yes, this solved my problem. Thank you very much for the help.
OCDER
OCDER 2017 年 9 月 19 日
You're welcome! Oh, I should have explained why your code didn't work. You were doing Test(w) = zt3(1:2000), but Test(w) is 1 element while zt3(1:2000) is 2000 elements. The elements must match in input and output. To make the for loop work, you'd have to fix it as below:
Test = zeros(2000, 10);
for w = 1:10
Test(:, w) = zt3(2000*(w-1)+1:2000*w, 1);
%Fill all row " : " for column number w in Test
end

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

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2017 年 9 月 19 日
T = mat2cell(zt3, 2000*ones(1,size(zt3,1)/2000), size(zt3,2));

カテゴリ

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