声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1306|回复: 7

[编程技巧] 矩阵的扩展

[复制链接]
发表于 2008-6-11 17:40 | 显示全部楼层 |阅读模式

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

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

x
请问:怎样将一个3*3矩阵,比如[1 2 3;4 5 6;7 8 9]扩展成为9*9:
[1 1 1 2 2 2 3 3 3                           [1 2 3 1 2 3 1 2 3
1 1 1 2 2 2 3 3 3                            4 5 6 4 5 6 4 5 6
1 1 1 2 2 2 3 3 3                            7 8 9 7 8 9 7 8 9
4 4 4 5 5 5 6 6 6          和              1 2 3 1 2 3 1 2 3
4 4 4 5 5 5 6 6 6                            4 5 6 4 5 6 4 5 6
4 4 4 5 5 5 6 6 6                            7 8 9 7 8 9 7 8 9
7 7 7 8 8 8 9 9 9                            1 2 3 1 2 3 1 2 3
7 7 7 8 8 8 9 9 9                            4 5 6 4 5 6 4 5 6
7 7 7 8 8 8 9 9 9]                           7 8 9 7 8 9 7 8 9]
调用哪两个函数?
回复
分享到:

使用道具 举报

发表于 2008-6-11 18:49 | 显示全部楼层
  1. a=[1 2 3;4 5 6;7 8 9];
  2. b=[a(:,1)*ones(1,3),a(:,2)*ones(1,3),a(:,3)*ones(1,3)];
  3. c=[ones(3,1)*b(1,:);ones(3,1)*b(2,:);ones(3,1)*b(3,:)]
复制代码
  1. d=repmat(a,3,3)
复制代码

评分

1

查看全部评分

 楼主| 发表于 2008-6-11 19:43 | 显示全部楼层
如果矩阵的维数比较大,比如21*21,要扩展成441*441的,有没有比上述方法更简单些的。
发表于 2008-6-11 19:45 | 显示全部楼层

回复 3楼 的帖子

这个与矩阵里面的kron乘积是一样的吗?
 楼主| 发表于 2008-6-11 20:04 | 显示全部楼层
噢 应该可以调用KRON,我再试试,多谢提示!!!
发表于 2008-6-11 20:06 | 显示全部楼层

回复 4楼 的帖子

最简单方法就是kron;
a=[1 2 3;4 5 6;7 8 9];
b=ones(3,3);
x=kron(a,b);
y=kron(b,a);

评分

1

查看全部评分

 楼主| 发表于 2008-6-11 20:12 | 显示全部楼层
多谢大家的帮忙!:victory:
发表于 2008-6-11 20:29 | 显示全部楼层
刚才看了一下kron的帮助及源代码,跟我写的代码思路完全一致。大矩阵的扩展做个循环即可。kron命令也是一样,但一般性更好。可以沿任何方向对向量进行延拓。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-9-23 07:25 , Processed in 0.067885 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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