我有一个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.
有办法做到这一点吗?
尝试使用导入数据反而,load通常仅用于.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
然后用 0 替换 NaN 并使用表达式创建对称矩阵。
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)