如何在matlab中从第三维选择第三矩阵中的特定索引
我知道这是一个简单的问题,但很难用一句话来表达答案。所以,我有一个像这样大小为 2x2x3 的 3d 矩阵
A(:,:,1) =[1 1; 1 1];
A(:,:,2) =[2 2; 2 2];
A(:,:,3) =[4 4; 4 4];
和大小为 2x2 的矩阵 B
B = [ 1 2; 2 3];
我需要的是从 A 中的每个第三维中进行选择使用矩阵 B 的一个数字:
for i=1:2,
for j=1:2,
C(i,j) = A(i,j,B(i,j));
end
end
如何在没有循环的情况下在一行中实现?
I know this is a simple question but difficult to formulate in one sentence to google the answer.So, I have a 3d matrix with size 2x2x3 like this
A(:,:,1) =[1 1; 1 1];
A(:,:,2) =[2 2; 2 2];
A(:,:,3) =[4 4; 4 4];
and matrix B with size 2x2
B = [ 1 2; 2 3];
What i need is to chose from each third dimension in A just one number using matrix B:
for i=1:2,
for j=1:2,
C(i,j) = A(i,j,B(i,j));
end
end
How to that in one line without a loop?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不是真正的单行,但没有循环:
Not really a single line, but without a loop:
这是另一种变体:
Here is another variation: