2

假设我们有一个 ArrayA = ones(2, 2, 2)和另一个 matrix P = rand(4)。我想知道是否可以编写代码

temp = A(:, :, 1);
X = P * temp(:);

放入一行代码以节省temp. 我试着跑

X = P * A(:, :, 1)(:);

但这不起作用。我也摸索了这个reshape命令,但无法让它工作。

我无法使用网络或此论坛找到答案。有可能做我想要的吗?

感谢您的帮助,

阿德里安

4

2 回答 2

3

你可以做 -

[m,n,r] = size(A);
X = P*reshape(A(:,:,1),m*n,[])

如果您沿着 的第三维迭代A,即 for A(:, :, iter),迭代器在哪里,您可以像这样在数组中以矢量化方式iter获取所有's -X

X_all = P*reshape(A,m*n,[])
于 2015-06-04T19:08:49.850 回答
1

重塑应该工作。尝试这样做:

X = P * reshape(A(:, :, 1), [], 1)
于 2015-06-04T19:08:58.250 回答