声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1157|回复: 3

[编程技巧] 请教个关于矩阵的问题,在线等

[复制链接]
发表于 2010-4-16 17:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我如果有一个矩阵
A=[1 2 3
      2 3 4 ]

如果我想把这个矩阵变为A1=[1  1  1
                                             2  2  2
                                             3  3  3 ]

                                    A2=[2  2  2
                                           3   3  3
                                          4  4   4]
就是把每一行都展开成一个矩阵
该如何进行?
回复
分享到:

使用道具 举报

发表于 2010-4-16 18:03 | 显示全部楼层

  1. A=[1 2 3
  2. 2 3 4 ];
  3. A = A';
  4. >> [nRow,nCol] = size(A);
  5. >> B = arrayfun(@(k) repmat(A(:,k),1,nRow),1:nCol,'UniformOutput',false)

  6. B =

  7.     [3x3 double]    [3x3 double]

  8. >> B{1}

  9. ans =

  10.      1     1     1
  11.      2     2     2
  12.      3     3     3

  13. >> B{2}

  14. ans =

  15.      2     2     2
  16.      3     3     3
  17.      4     4     4
复制代码
 楼主| 发表于 2010-4-16 19:01 | 显示全部楼层

非常感谢

非常感谢,我去尝试一下
发表于 2011-6-26 12:26 | 显示全部楼层
没有arrayfun的老式方法, 差距立见! :@L
  1. clc; clear
  2. A=[1 2 3;2 3 4 ]; A=A'; [nRow,nCol] = size(A);
  3. for k=1:nCol, eval(['A',num2str(k),'=repmat(A(:,k),1,',num2str(nRow),')']); end
复制代码
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-21 13:40 , Processed in 0.051076 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表