Avoid for loop in multi-dimensional problem
1 次查看(过去 30 天)
显示 更早的评论
I am looking to create a 3D matrix the achieves the following:
A(:,:,1)=[0 -2*pi; 2*pi 0]; A(:,:,2)=[0 -4*pi; 4*pi 0];
Ultimately, I am trying to solve
, which in this instance will evaluate to 0. But for now, I just want to figure out how to build the
matrix
.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1201378/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1201383/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1201388/image.png)
I have the following code:
l=0:1; q=0:1; p=2*pi*(1:2);
sub = l(:)-q(:).' % gives a 2x2 matrix
sub2 = repmat(sub,[1 1 2]) % repeats the 2x2 matrix to give a 2x2x2 matrix
for p_ = 1:length(p)
A(:,:,p_) = p(p_)*sub2(:,:,p_);
end
I am looking to conduct a multiplation that yields
without having to use a for loop. Any suggestions would be appreciated.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1201393/image.png)
0 个评论
采纳的回答
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!