Implement the following matrix
1 次查看(过去 30 天)
显示 更早的评论
I want implement a matrix which as follows:
where i is a subscript in my it will be a for loop which execute i=1:3 and theta,r,a,b,p,q,t arrays. theta,r,t are 1*3 matrix.a,b,p,q are 1*1 matrix.
The following is my approach:
theta = [ 45 46 48] ;
t= [ 1 2 3 ];
r= [200 210 220];
for i=1:3
dif_x = [(-cos(theta(i))) (r(i).*sin(theta(i))) (2*a.*t(i)+b);...
(-sin(theta(i))) (-r(i).*cos(theta(i))) (2*p.*t(i)+q)]
end
I want to know am I donig correct or not! and if I am wrong what will be the coorect approach.
Thanks in advance.
0 个评论
采纳的回答
Jan
2019-5-15
The code overwrites dif_x in each iteration. Maybe you want to collect the different matrices instead:
theta = [ 45 46 48] ;
t = [ 1 2 3 ];
r = [200 210 220];
dif_x = zeros(2, 3, 3); % Pre-allocation
for i=1:3
dif_x(:, :, i) = [-cos(theta(i)), r(i).*sin(theta(i)), 2*a.*t(i)+b;...
-sin(theta(i)), -r(i).*cos(theta(i)), 2*p.*t(i)+q];
end
It is safer to separate the elements of arrays by commas.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!