Storing Multiple Matrices in a Cell array
Ältere Kommentare anzeigen
Hello, I am currently attempting to generate 30 different matrices and store them in a cell array, but when I run the program I just have a cell array with 30 copies of the same matrix. What am I doing wrong?
m_A = 20;
ID = 3754;
m_B = .002*ID + 3.1;
J_A = 0.0013*ID + 0.188;
g = -9.81;
i = 1;
n = 30/i;
%stores matrices in a cell array
matrixresults = cell(1, n);
for k = 1:n
%generates A matrices
for M = 0:i:30
%m_C = M; m_D = M;
J_C = .5*M*((.1)^2);
%J_D = J_C;
%tau_A = 10 - M;
matrixresults{k} = [(m_A), 0, -1, 1, 0, 0, 0;
(5*J_A), 0, -0.2, 0, 0, 0, 0;
(10*J_C), 0, 0, -0.1, 0, .1, 0;
0, M, 0, 0, 1, -1, -1;
0, (10*J_C), 0, 0, 0, -0.1, 0.1;
0, m_B, 0, 0, -1, 0, 0;
0.5, -1, 0, 0, 0, 0, 0];
end
end
Thank you!!
Antworten (1)
Andrei Bobrov
am 12 Feb. 2018
m_A = 20;
ID = 3754;
m_B = .002*ID + 3.1;
J_A = 0.0013*ID + 0.188;
g = -9.81;
n = 30;
M = 0:n-1;
J_C = .05*M;
mr = repmat([(m_A), 0, -1, 1, 0, 0, 0;
(5*J_A), 0, -0.2, 0, 0, 0, 0;
0, 0, 0, -0.1, 0, .1, 0;
0, 0, 0, 0, 1, -1, -1;
0, 0, 0, 0, 0, -0.1, 0.1;
0, m_B, 0, 0, -1, 0, 0;
0.5, -1, 0, 0, 0, 0, 0],1,1,n);
[m,n,k] = size(mr);
mr([3;11;12] + (0:k-1)*m*n) = [J_C;M;J_C];
matrixresults = squeeze(num2cell(mr,[1,2]));
Kategorien
Mehr zu Matrix Indexing finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!