Storing the generated matrices from a for loop into cell arrays and access them later to multiply them altogether

3 次查看(过去 30 天)
I have to write the corresponding MATLAB algorithm to get the first column of M = (A - x_k*I)(A - x_(k-1)*I)(A - x_1*I), where A is an nxn matrix, I is the identity matrix, and x is a vector of length k.
Here is my algorithm:
function [M] = double1(A, x)
k = length(x);
[n,n] = size(A);
for i = k:-1:1
M{i} = A-x(i)*eye(n);
end
I want to store the matrices that I get from my for loop into a cell array and access them later and multiply them altogether. How to do that? Any help, please?

回答(1 个)

Stephen23
Stephen23 2020-9-19
编辑:Stephen23 2020-9-19
No cell array required:
>> x = [2,5,23];
>> A = [9,8;7,6];
>> [n,n] = size(A);
>> M = 1;
>> for k=numel(x):-1:1; M = M*(A-x(k)*eye(n)); end
>> M
M =
-728 -416
-364 -572

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by