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

我有一个像这样的upper triangular矩阵:

A= load('A.txt'); 1.0 3.32 -7.23 1.00 0.60 1.00 我想在MATLAB中加载它,因为这是对称转换

a = A + triu(A, 1)'
所以最后我会有一个矩阵a

1.0 3.32 -7.23 3.32 1.00 0.60 -7.23 0.60 1.00 我遇到的问题是在加载时:

>> A = load('A.txt'); ??? Error using ==> load Number of columns on line 1 of ASCII file C:\A.txt must be the same as previous lines. 有没有办法做到这一点?



回答:

尝试使用importdata代替, 加载通常仅用于.mat文件。您的文件A.txt的结构如何?如果是这样

1.0 3.32 -7.23 1.00 0.60 1.00 那么你会得到

A = importdata('A.txt') A = 1.0000 3.3200 -7.2300 1.0000 0.6000 NaN 1.0000 NaN NaN 因此,您将不得不像这样移动最后两行

A(2,:) = circshift(A(2,:),[0 1]) A(3,:) = circshift(A(3,:),[0 2]) A = 1.0000 3.3200 -7.2300 NaN 1.0000 0.6000 NaN NaN 1.0000 然后将NaN替换为0,然后使用表达式创建对称矩阵。

A(isnan(A)) = 0; a = A + triu(A, 1)'; A = 1.0000 3.3200 -7.2300 3.3200 1.0000 0.6000 -7.2300 0.6000 1.0000

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


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

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



所有时间均为北京时间。现在的时间是 22:55


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