作业帮 > 数学 > 作业

关于matlab 数组变形的方法?

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/17 06:30:35
关于matlab 数组变形的方法?
我现在有一个数据矩阵,是360*1080的,为了方便说明,假象一个矩阵
x=[ 1 2 3 4 5 6 7 8 9
11 22 33 44 55 66 77 88 99
111 222 333 444 555 666 777 888 999]
我想将上述矩阵转换成为:
x=[ 1 2 3
11 22 33
111 222 333
4 5 6
44 55 66
444 555 666
7 8 9
77 88 99
777 888 999];
也就是每3列形成一个块,依次从上向下排列开来的算法.上面的矩阵只是我举得一个例子,我实际要算的矩阵,是360*1080的,
下面是我写的一个程序,a就是要操作的矩阵,你可以随意确定它的值你说的360*1080的大小也是可以的,我做了一个小例子,运行结果也贴出来了,你可以看一下,希望能帮到你.
---------------------------------------程序
a=[1 2 3 4 5 6;7 8 9 4 5 6;11 21 13 14 15 16]
d=size(a);
temp =ones(d(1)*(d(2)/3),3);
for i=1:3:d(2)
temp(i:i+d(1)-1,:) = a(:,i:i+2);
end
temp
--------------------------------------------------运行结果为
a =
1 2 3 4 5 6
7 8 9 4 5 6
11 21 13 14 15 16
temp =
1 2 3
7 8 9
11 21 13
4 5 6
4 5 6
14 15 16