Matlab中如何将向量转换为对称空心矩阵?
将向量转换为24×24对称空心矩阵的Matlab实现
首先,24×24对称矩阵的上三角非对角线元素总数为 (24×23)/2 = 276,刚好和你的向量长度匹配,直接按以下步骤操作即可:
- 先创建一个24×24的零矩阵(对角线天然为0,满足空心要求)
- 定位矩阵的上三角区域(不含对角线),把向量值填充进去
- 通过转置将上三角的值复制到下三角,保证矩阵对称性
完整代码示例
% 生成示例向量(你可以替换成自己的r2) r2 = randi(10,276,1); % 初始化24x24的零矩阵 sym_hollow_matrix = zeros(24); % 获取上三角(不含对角线)的索引位置 upper_tri_indices = triu(true(24), 1); % 将向量值填充到上三角区域 sym_hollow_matrix(upper_tri_indices) = r2; % 复制上三角到下三角,生成对称矩阵 sym_hollow_matrix = sym_hollow_matrix + sym_hollow_matrix';
验证说明
- 对角线元素始终为0,符合“空心”要求
- 执行
isequal(sym_hollow_matrix, sym_hollow_matrix')会返回true,确认矩阵对称性
内容的提问来源于stack exchange,提问作者labgeek
相关产品推荐
相关产品推荐

