How to store the results from a for loop into a matrix?
Show older comments
clear all
clc
F = 2;
x = [.1:.05:1.9];
for i = x;
theta1 = atan((2-i)/1);
theta2 = atan(1/(2-i));
theta3 = atan(1/i);
A = [-1 -cos(theta2) 0 0 0 0 0 0 0 0; %Fab
0 sin(theta2) 0 0 0 0 0 0 0 0; %Fac
1 0 -1 0 0 0 0 0 0 0; %Fbd
0 0 0 1 0 0 0 0 0 0; %Fbc
0 sin(theta1) 0 0 -1 -cos(theta3) 0 0 0 0; %Fce
0 -cos(theta1) 0 -1 0 -sin(theta3) 0 0 0 0; %Fcd
0 0 1 0 0 cos(theta3) -1 0 0 0; %Dx
0 0 0 0 0 sin(theta3) 0 1 0 0; %Fde
0 0 0 0 1 0 0 0 -1 0; %Ex
0 0 0 0 0 0 0 -1 0 1]; %Ey
b = [0 F 0 F/2 0 0 0 0 0 0]';
Reactions = A\b
end
How do i store the "Reactions" results from each iteration of the loop into one matrix?
Accepted Answer
More Answers (1)
madhan ravi
on 20 Sep 2019
Edited: madhan ravi
on 20 Sep 2019
F = 2;
x = .1:.05:1.9;
Reactions = cell(numel(x),1);
b = [0 F 0 F/2 0 0 0 0 0 0]'; % there's no point in defining it over and over again inside the loop.
for ii = 1:numel(x);
theta1 = atan((2-x(ii))/1);
theta2 = atan(1/(2-x(ii)));
theta3 = atan(1/x(ii));
A = [-1 -cos(theta2) 0 0 0 0 0 0 0 0; %Fab
0 sin(theta2) 0 0 0 0 0 0 0 0; %Fac
1 0 -1 0 0 0 0 0 0 0; %Fbd
0 0 0 1 0 0 0 0 0 0; %Fbc
0 sin(theta1) 0 0 -1 -cos(theta3) 0 0 0 0; %Fce
0 -cos(theta1) 0 -1 0 -sin(theta3) 0 0 0 0; %Fcd
0 0 1 0 0 cos(theta3) -1 0 0 0; %Dx
0 0 0 0 0 sin(theta3) 0 1 0 0; %Fde
0 0 0 0 1 0 0 0 -1 0; %Ex
0 0 0 0 0 0 0 -1 0 1]; %Ey
Reactions{ii} = A\b;
end
celldisp(Reactions)
cat(2,Reactions{:}) % if you want a matrix
Categories
Find more on Array Geometries and Analysis 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!