Create multidimensional rotation matrix
    5 次查看(过去 30 天)
  
       显示 更早的评论
    
I have two 1x541 column vectors: one for latitudes and one for longitudes.I want to create a 3d array rotation matrix where each iteration in the third dimension steps from 1 to 541 from the column vector. It should be a 3x3x541 array. 
Here is what I have so far:
"aclon" and "aclat" are the 541x1 column vectors. "howbig" is just the length of the column vectors and used for matching the length of "aclon" and "aclat"
My code currently produces a 1623x3 matrix 
Rm = [sin(aclon) cos(aclon) zeros(howbig,1); -sin(aclat).*cos(aclon) sin(aclat).*sin(aclon) cos(aclat); cos(aclat).*cos(aclon) cos(aclat).*sin(aclon) sin(aclat)];
0 个评论
采纳的回答
  Matt J
      
      
 2023-3-24
        
      编辑:Matt J
      
      
 2023-3-24
  
      howbig=541;
[aclon,aclat]=deal(rand(howbig,1));  %fake input data
aclon=reshape(aclon,1,1,[]);
aclat=reshape(aclat,1,1,[]);
Rm = [sin(aclon) cos(aclon) 0*aclat; 
     -sin(aclat).*cos(aclon) sin(aclat).*sin(aclon) cos(aclat); 
      cos(aclat).*cos(aclon) cos(aclat).*sin(aclon) sin(aclat)];
whos Rm
更多回答(0 个)
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Operators and Elementary Operations 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!