楼主: xingyeshuijing
1023 8

[其他] 求一个小程序 运用matlab软件 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

45%

还不是VIP/贵宾

-

威望
0
论坛币
146 个
通用积分
0.0013
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
22347 点
帖子
49
精华
0
在线时间
247 小时
注册时间
2010-8-21
最后登录
2023-7-17

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.
关键词:matlab软件 MATLAB matla atlab Mat matlab 程序 软件
沙发
luckyart 发表于 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 |只看作者 |坛友微信交流群
不会这个

使用道具

板凳
xingyeshuijing 发表于 2012-6-10 17:39:50 |只看作者 |坛友微信交流群
luckyart 发表于 2012-6-10 16:17
楼主看看用matlab  reshape 函数。
B = reshape(A,m,n)
您的答案非常好,但是还有一个问题,reshape函数是把数据竖着放入的,而不是横着放入的,怎么修改呢,谢谢

使用道具

报纸
cckinger 在职认证  发表于 2012-6-11 17:25:06 |只看作者 |坛友微信交流群
xingyeshuijing 发表于 2012-6-10 17:39
您的答案非常好,但是还有一个问题,reshape函数是把数据竖着放入的,而不是横着放入的,怎么修改呢,谢谢 ...
用转置一下行不?虽然我不用MATLAB

使用道具

地板
lov妍e 发表于 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


使用道具

7
mj2012 发表于 2012-6-12 07:57:22 |只看作者 |坛友微信交流群
repmat

使用道具

8
xingyeshuijing 发表于 2012-6-15 17:26:03 |只看作者 |坛友微信交流群
看来还是转置的方法不错!

使用道具

9
sina410915 发表于 2012-6-16 12:09:58 |只看作者 |坛友微信交流群
这个是什么啊?

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加JingGuanBbs
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-29 01:42