Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
 
 
主题工具 显示模式
旧 2019-12-14, 20:13   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 将N ^ 2个3x3矩阵级联为3Nx3N矩阵

我有N ^ 2个矩阵。每个都是3x3矩阵。将它们串联到3Nx3N矩阵的一种方法是编写A(:,:,i)= # 3x3 matrix i=1:N^2



B=[A11 A12 ..A1N;A21 ...A2N;...]但是,当N大时,是一项繁琐的工作。您提供什么?



回答:

这是一个非常快的单线 ,仅使用RESHAPEPERMUTE

B = reshape(permute(reshape(A,3,3*N,N),[2 1 3]),3*N,3*N).'; 并进行测试:

>> N=2; >> A = rand(3,3,N^2) A(:,:,1) = 0.5909 0.6571 0.8082 0.7118 0.6090 0.7183 0.4694 0.9588 0.5582 A(:,:,2) = 0.1791 0.6844 0.6286 0.4164 0.4140 0.5833 0.1380 0.1099 0.8970 A(:,:,3) = 0.2232 0.2355 0.1214 0.1782 0.6873 0.3394 0.5645 0.4745 0.9763 A(:,:,4) = 0.5334 0.7559 0.9984 0.8454 0.7618 0.1065 0.0549 0.5029 0.3226 >> B = reshape(permute(reshape(A,3,3*N,N),[2 1 3]),3*N,3*N).' B = 0.5909 0.6571 0.8082 0.1791 0.6844 0.6286 0.7118 0.6090 0.7183 0.4164 0.4140 0.5833 0.4694 0.9588 0.5582 0.1380 0.1099 0.8970 0.2232 0.2355 0.1214 0.5334 0.7559 0.9984 0.1782 0.6873 0.3394 0.8454 0.7618 0.1065 0.5645 0.4745 0.9763 0.0549 0.5029 0.3226

更多&回答...
poster 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 19:41


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.