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

1 view (last 30 days)
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?

Answers (1)

Stephen23
Stephen23 on 19 Sep 2020
Edited: Stephen23 on 19 Sep 2020
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

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!