Sum matrixes from cells

2 Ansichten (letzte 30 Tage)
Christos
Christos am 9 Mär. 2024
Beantwortet: Sibghat am 9 Mär. 2024
Right now the code gives A matrix which are saved as cells in C. What I want to do at the final step, is to sum all A matrix that was given in every loop. How can I do that? Maybe exctract the matrix from C and sum them all together?! I dont know.( k is a number)
clear
clc
format long
k = input("mesie:");
for i=1:k
A=zeros(k+1);
L=zeros(2,k+1);
L(1,i)=1;
L(2,i+1)=1;
M1 = [2 1;1 2];
A = L'*M1*L;
C{i}=A;
end

Akzeptierte Antwort

Voss
Voss am 9 Mär. 2024
sum(cat(3,C{:}),3)
  3 Kommentare
Voss
Voss am 9 Mär. 2024
Demonstration:
clear
clc
format long
% k = input("mesie:");
k = 5;
for i=1:k
A=zeros(k+1);
L=zeros(2,k+1);
L(1,i)=1;
L(2,i+1)=1;
M1 = [2 1;1 2];
A = L'*M1*L;
C{i}=A;
end
A_total = sum(cat(3,C{:}),3)
A_total = 6×6
2 1 0 0 0 0 1 4 1 0 0 0 0 1 4 1 0 0 0 0 1 4 1 0 0 0 0 1 4 1 0 0 0 0 1 2
Voss
Voss am 9 Mär. 2024
You're welcome!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Sibghat
Sibghat am 9 Mär. 2024
Hopefully this will help...
clear
clc
format long
% The 'input' function can not be used here. So I have set a default value 3 for the variable k.
k = 3;
C = cell(1, k); % Preallocate cell array
summed_matrix = zeros(k+1); % Initialize summed_matrix
for i = 1:k
A = zeros(k+1);
L = zeros(2, k+1);
L(1, i) = 1;
L(2, i+1) = 1;
M1 = [2 1; 1 2];
A = L' * M1 * L;
C{i} = A;
% Accumulate each matrix into summed_matrix
summed_matrix = summed_matrix + A;
end
% Display all matrices stored in cell array C
for i = 1:k
disp(['Matrix C{' num2str(i) '}']);
disp(C{i});
end
Matrix C{1}
2 1 0 0 1 2 0 0 0 0 0 0 0 0 0 0
Matrix C{2}
0 0 0 0 0 2 1 0 0 1 2 0 0 0 0 0
Matrix C{3}
0 0 0 0 0 0 0 0 0 0 2 1 0 0 1 2
disp('Sum of all matrices:');
Sum of all matrices:
disp(summed_matrix);
2 1 0 0 1 4 1 0 0 1 4 1 0 0 1 2

Kategorien

Mehr zu Numeric Types finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by