【发布时间】:2012-09-19 03:04:01
【问题描述】:
我有一个 3x3 矩阵 A。我还计算了一个值 g,作为 A 的最大特征值。我试图将元素 A(3,3) = 0 更改为以 0.10 为增量从零到一的所有值,然后为每个值更新 g。我希望所有其他矩阵元素保持不变。
我认为 for 循环 可以做到这一点,但我不知道如何只更新矩阵中的一个元素而不将此更新存储为一个越来越大的矩阵。如果我调用 A(3,3) = p 处的元素(从而创建一个新矩阵 Atry),我能够(如下)获得我想要的从 0 到 1 的所有值。我不知道如何更新 Atry 以获得我想要的所有 g 值。正如预期的那样,现在代码状态将为所有迭代提供相同的 g 值,因为我不知道如何使用不同的 p值更新 Atry > 然后计算 g 的值。
任何有关如何执行此操作的建议或对我进行网络搜索的行话或短语的建议将不胜感激。
A = [1 1 1; 2 2 2; 3 3 0];
g = max(eig(A));
% This below is what I attempted to achieve my solution
clear all
p(1) = 0;
Atry = [1 1 1; 2 2 2; 3 3 p];
g(1) = max(eig(Atry));
for i=1:100;
p(i+1) = p(i)+ 0.01;
% this makes a one giant matrix, not many
%Atry(:,i+1) = Atry(:,i);
g(i+1) = max(eig(Atry));
end
【问题讨论】: