数学建模社区-数学中国

标题: 求教高手:怎么用一个循环,把两个矩阵不断地合并 [打印本页]

作者: 冬季的期盼    时间: 2013-8-9 11:35
标题: 求教高手:怎么用一个循环,把两个矩阵不断地合并
请教matbal高手:
有一个循环,每循环一次,把一个矩阵z,增加2列,增加的是矩阵g,要怎么做呢?
>> z=[]
z =
     []
>> z=[z(:),g(:,1),g(:,2)]
我试验了这个可以,但是再运行一次
z=[z(:),g(:,1),g(:,2)]
就报错了
可是,我测试z=[z(:),g(:)]又可以
但是把两个矩阵的元素都排成1列了,改变了z和g的行数,又不是我想要的,
要怎么写好呢?

相关运行结果:
>> z=[]
z =
     []
>> z=[z(:),g(:,1),g(:,2)]
z =
     0    65
    -1    59
    -2    53
    -1    64
     1    64
    -1    65
     2    69
     1    76
    -4    53
     2    72
     3    75
     3    73
     1    65
    -2    59
    -1    59
    -1    58
     0    63
     1    65
     1    69
     4    73
>> z=[z(:),g(:,1),g(:,2)]
Error using horzcat
CAT arguments dimensions are not consistent.

>> z=[z(:),g(:)]
z =
     0     0
    -1    -1
    -2    -2
    -1    -1
     1     1
    -1    -1
     2     2
     1     1
    -4    -4
     2     2
     3     3
     3     3
     1     1
    -2    -2
    -1    -1
    -1    -1
     0     0
     1     1
     1     1
     4     4
    65    65
    59    59
    53    53
    64    64
    64    64
    65    65
    69    69
    76    76
    53    53
    72    72
    75    75
    73    73
    65    65
    59    59
    59    59
    58    58
    63    63
    65    65
    69    69
    73    73
我实际 上想要的是4列,要怎么做呢
作者: magic2728    时间: 2013-8-9 14:29
g=rand(10,2);
z=[];
for i=1:10%循环十次的话
    z=[z,g];
end
这样就可以了,a(:)是a(:,:)的缩写,表示把矩阵的元素排成一列,故楼主加:是多余的,直接把矩阵用,拼在一起就好。
作者: 冬季的期盼    时间: 2013-8-9 14:59
magic2728 发表于 2013-8-9 14:29
g=rand(10,2);
z=[];
for i=1:10%循环十次的话

么么哒~~解决了!

作者: magic2728    时间: 2013-8-9 17:12
谢谢支持!欢迎常来数学中国,祝您建模愉快!




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5