我想将Matrix(Matrix是矩阵的名称)值保存在一个单独的变量中,以便最终收集所有矩阵,然后一次打印所有矩阵。我当前的代码在每个循环中打印值,而我想在最后一个循环中获取矩阵的所有值。
syms num T1 T2 T3 T4 T3 T6 T7 T8 T9 T10 T5
%Getting data for Robot%
prompt = 'Enter the number of joints in your robot';
X = input(prompt);
num = 0;
while(num<X)
matrix_number = ['t ',num2str(num),'_', num2str(num+1)];
link_twist = ['Enter the value of twist(alpha) for the link number',num2str(num+1),' link e.g 10,80 etc'];
disp(link_twist)
al = input(prompt);
link_length = ['Enter the value of offset(d) for the link number',num2str(num+1),' link e.g 1,2,3,4 etc'];
disp(link_length)
prompt = '';
d = input(prompt);
link_offset = ['Enter the value of link length(a) for the link number',num2str(num+1),' link e.g 1,2,3,4 etc'];
disp(link_offset)
prompt = '';
a = input(prompt);
link_theta = ['Enter the value of theta for the link number ',num2str(num+1),' link e.g T1, T2 etc'];
disp(link_theta)
prompt = '';
theta = input(prompt);
Matrix = [cosd(theta) -sind(theta) 0 a;
sind(theta)*cos(al) cosd(theta)*cosd(al) -sind(al) -sind(al)*d; sind(theta)*sind(al) cosd(theta)*sind(al) cosd(al) cosd(al)*d;
0 0 0 1];
disp(matrix_number)
digits(2)
printed_matrix = vpa(Matrix);
pretty(printed_matrix)
num = num+1;
end
答案 0 :(得分:1)
使用cell array数据类型存储每次运行的整个矩阵。
在while循环之前,您将需要预分配数组Carray = cell([X,1])
然后,您可以使用num
值为数组建立索引。您可以选择在增加num
...
num = num+1
Carray{num} = Matrix
end
现在,您可以通过将索引传递到Carray
中来访问每次运行生成的矩阵。
Mat3 = Carray{3}