MATLAB Answers

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

1 view (last 30 days)
Pascale Bou Chahine
Pascale Bou Chahine on 18 Sep 2020
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);
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)

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


Sign in to comment.

Community Treasure Hunt

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

Start Hunting!