如何用matlab编程从数组的第一列到最后一列依次取出每两列?

例如:A=[1 2 3 4; 2 3 4 5]取出:[1 2; 2 3] [3 4; 4 5]
2024-11-17 06:03:34
推荐回答(2个)
回答1:

clear all
A=[1 2 3 4 5 6 7;2 3 4 5 6 7 8 ];

n=2;%设定几列取数

for i=1:n:n*floor(size(A,2)/n)%设定循环变量,去除不足n列的剩余列,这样易于控制c的表达式,不使其超过下标范围

c=A(:,[i:i+n-1]);%每次循环赋值给c

ind=size(1:n:size(A,2),2)-floor((size(A,2)-i)/n);
%推导文件名下标与循环变量的关系

eval(['B',num2str(ind),'=c',';']);%产生多个B数组,B1,B2.。。。。

end

这是通用程序,你可以输入任意A,设定取几列数,当最终不够设定列数时将自动去除。

回答2:

依次取出每两行还是每两列?你目标是要赋值给一个变量还是多个变量