You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Matlab中利用对称性由四分之一矩阵生成完整矩阵?

Matlab实现矩阵镜像生成完整矩阵的方法及优化

给定四分之一矩阵:

A = [1 2;
     3 4]

我们需要通过水平、垂直镜像得到完整矩阵:

B = [1 2 2 1;
     3 4 4 3;
     3 4 4 3;
     1 2 2 1]

你的现有方法完全可行

你给出的代码逻辑清晰,能准确生成目标矩阵:

Q = [A fliplr(A)]
B = [Q ; flip(Q)]

其中fliplr(A)负责水平翻转A,拼接后得到上半部分Q;flip(Q)默认对矩阵做垂直翻转(和flipud(Q)效果一致),再和Q垂直拼接就得到完整的B。

更简洁的实现方式

如果想要减少中间变量、让代码更紧凑,可以把两步合并成一行:

B = [A fliplr(A); flipud(A) flipud(fliplr(A))]

或者利用flip的维度参数,写法更统一:

B = [A flip(A,2); flip(A,1) flip(flip(A,2),1)]

不过从性能角度来说,这几种方法差异极小——Matlab的矩阵拼接和内置翻转函数都是高度优化的向量化操作,效率都很高。你的原始写法胜在可读性更强,更容易理解每一步的逻辑。

内容的提问来源于stack exchange,提问作者S B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 18:15:50