yamma 发表于 2007-5-23 17:06

如何在原有的矩阵里加入新的矩阵

  现在有一个600×10的矩阵,对其中的第二列要把其数字比如0612这样一个月日组成的数字分开,分开后且和原来矩阵一起输出。现在主要难在,分开后成为一个新的两列矩阵后,不知道怎么加在原来的矩阵中。也可以把问题总结为,如何在原有矩阵中插入新的多于原来矩阵列数的矩阵?请各位帮帮忙。

eight 发表于 2007-5-23 17:24

原帖由 yamma 于 2007-5-23 17:06 发表 http://www.chinavib.com/forum/images/common/back.gif
  现在有一个600×10的矩阵,对其中的第二列要把其数字比如0612这样一个月日组成的数字分开,分开后且和原来矩阵一起输出。现在主要难在,分开后成为一个新的两列矩阵后,不知道怎么加在原来的矩阵中。也可以 ...

没看懂,其实你举一个小例子就可以了,输入是什么,输出是什么

yamma 发表于 2007-5-23 17:29

比如:
x=[1,0212,2;
   2,0305,4]
y=[1,02,12,2;
   2,03,05,4]
目的就是把x变成y

w89986581 发表于 2007-5-23 17:32

y =

[ 本帖最后由 w89986581 于 2007-5-23 17:35 编辑 ]

eight 发表于 2007-5-23 17:33

原帖由 yamma 于 2007-5-23 17:29 发表 http://www.chinavib.com/forum/images/common/back.gif
比如:
x=[1,0212,2;
   2,0305,4]
y=[1,02,12,2;
   2,03,05,4]
目的就是把x变成y

y = ;
其中 x1 是前两列,x2 是后两列

yamma 发表于 2007-5-23 17:38

不明白你的意思

yamma 发表于 2007-5-24 08:59

找到一个方法

我找到方法了
使用的是repmat这个函数
z= repmat(x,1,2);
(x:,=[];
%因为在前面的过程中,用fix已把月日行分开成为列矩阵,所以我直接赋,假如为time_m 和time_d
x(:,2)=time_m
x(:,3)=time_d
这样再按格式输出z就可以了

eight 发表于 2007-5-24 09:35

原帖由 yamma 于 2007-5-24 08:59 发表 http://www.chinavib.com/forum/images/common/back.gif
我找到方法了
使用的是repmat这个函数
z= repmat(x,1,2);
(x:,=[];
%因为在前面的过程中,用fix已把月日行分开成为列矩阵,所以我直接赋,假如为time_m 和time_d
x(:,2)=time_m
x(:,3)=time_d
这样 ...

用 z = ; 就行了,这就是我上面给你提示的用意,举一反三即可

yamma 发表于 2007-5-24 10:08

原帖由 eight 于 2007-5-24 09:35 发表 http://www.chinavib.com/forum/images/common/back.gif


用 z = ; 就行了,这就是我上面给你提示的用意,举一反三即可


如果这样,新加入矩阵的没有在我所希望的位置

eight 发表于 2007-5-24 10:09

原帖由 yamma 于 2007-5-24 10:08 发表 http://www.chinavib.com/forum/images/common/back.gif



如果这样,新加入矩阵的没有在我所希望的位置

变通一下即可:
z =

yamma 发表于 2007-5-24 10:59

原帖由 eight 于 2007-5-24 10:09 发表 http://www.chinavib.com/forum/images/common/back.gif


变通一下即可:
z =


这样比用repmat简化多了,谢谢eight。
整个编程随着这问题的解决已经很顺利的完成了。
感谢关注过并给予启发的每个人。
页: [1]
查看完整版本: 如何在原有的矩阵里加入新的矩阵