全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 悬赏大厅 求助成功区
1275 8
2012-06-09
悬赏 10 个论坛币 已解决
请教大家,我用matlab建立一个1*30的矩阵,怎么能把它变成3*10的矩阵,要求不改变顺序。例如
a=【1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0】
变换为b=【1,2,3,4,5,6,7,8,9,0
                  1,2,3,4,5,6,7,8,9,0
                  1,2,3,4,5,6,7,8,9,0】
用什么函数啊?当然我做的矩阵没有这么简单。

最佳答案

luckyart 查看完整内容

楼主看看用matlab reshape 函数。 B = reshape(A,m,n) returns the m-by-n matrix B whose elements are taken column-wise from A. An error results if A does not have m*n elements.
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-6-9 10:54:12
楼主看看用matlab  reshape 函数。
B = reshape(A,m,n)

returns the m-by-n matrix B whose elements are taken column-wise from A. An error results if A does not have m*n elements.
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-6-9 12:40:46
不会这个
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-6-10 17:39:50
luckyart 发表于 2012-6-10 16:17
楼主看看用matlab  reshape 函数。
B = reshape(A,m,n)
您的答案非常好,但是还有一个问题,reshape函数是把数据竖着放入的,而不是横着放入的,怎么修改呢,谢谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-6-11 17:25:06
xingyeshuijing 发表于 2012-6-10 17:39
您的答案非常好,但是还有一个问题,reshape函数是把数据竖着放入的,而不是横着放入的,怎么修改呢,谢谢 ...
用转置一下行不?虽然我不用MATLAB
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-6-11 18:03:05
这个貌似不是很难。M文件如下:
%将1*30矩阵A转化为3*10矩阵B
A=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30];
B=ones(3,10);
for i=1:3
for j=1:10
    B(i,j)=A(1,(i-1)*10+j);
end
end
B


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群