Why does this not success?? Would someone help me correct the code?
A=[1 5; 3 3; 8 6; 4 8; 9 14; 11 11; 13 12; 15 7; 17 15; 1 20]
B=[]
for i=1:5
for j=1:5
B(i,:)=horzcat(B(i,:),A(i+j-1,:));
end
end
I'd like to get this
B=[1 5 3 3 8 6 4 8 9 14;3 3 8 6 4 8 9 14 11 11; 8 6 4 8 9 14 11 11 13 12; 4 8 9 14 11 11 13 12 15 7;9 14 11 11 13 12 15 7 17 15;11 11 13 12 15 7 17 15 1 20]

 采纳的回答

Matt J
Matt J 2020-4-12
编辑:Matt J 2020-4-12
Another way,
AA=reshape(A.',[],1).';
B=cell(numel(AA),1);
for i=1:2:11
B{i}=AA(i:i+9);
end
B=cell2mat(B)

1 个评论

Thanks so much! This is exactly what I'd like to do and I found this works!!

请先登录,再进行评论。

更多回答(1 个)

Matt J
Matt J 2020-4-12
编辑:Matt J 2020-4-12
horzcating in for-loops is bad practice. Better to do,
AA=reshape(A.',[],1).';
B=AA( (1:10)+(0:2:10).' )

2 个评论

Thanks for your comment. I am sorry that I set up a simple table as the contents of A here. Actual contents of A in the computation I am trying to do is much complicated. So the proposed solution is not useful.
My solution is independent of the contents of A.

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Loops and Conditional Statements 的更多信息

产品

版本

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by