У меня есть матрица 3x3, A. Я также вычисляю значение g как максимальное собственное значение A. Я пытаюсь изменить элемент A (3,3) = 0 для всех значений от нуля до единицы с шагом 0.10, а затем обновить g для каждого из значений. Я бы хотел, чтобы все остальные матричные элементы остались прежними.Обновить только один матричный элемент для итеративного вычисления
Я думал, что для цикла будет способ сделать это, но я не знаю, как обновлять только один элемент в матрице, не сохраняя это обновление как одну более крупную матрицу. Если я назову элемент в точке A (3,3) = p (тем самым создав новую матрицу Atry), я могу (ниже) получить все значения от 0 до 1, которые я желал. Я не знаю, как обновить Atry, чтобы получить все значения g, которые я желаю. Состояние кода теперь даст мне то же значение g для всех итераций, как и ожидалось, поскольку я не знаю, как обновить Atry с разными значениями p, чтобы затем вычислить значения для 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
Роди, спасибо, это было очень экономное решение моего вопроса. Я довольно новичок в MATLAB и программировании. Мне нужно будет больше узнать об анонимных функциях и массиве, однако я не знаю, как бы я их открыл самостоятельно. Спасибо за помощь. Я уверен, что в будущем буду задавать больше вопросов MATLAB. – nofunsally