我有一个包含数值数据的3D矩阵(8x5x100)。我需要把一个2D矩阵(8x5)从3D矩阵传递到另一个函数,并重复这个过程100次( 3D矩阵的长度)。我的目标是尽可能加快这一进程。对不起,我不能发布我的实际代码。
当前代码:
3dmatrix=ones(8,5,100);
for i=1:100
output(i)=subfunction(3dmatrix(:,:,i));
end
我读过关于使用数组的文章,它可能比循环更快。这是正确的实现吗?
3dmatrix=ones(8,5,100);
for i=1:100
output(i)=arrayfun(@(x) subfu
考虑以下函数,该函数将灰度图像(2D矩阵)作为输入:
function r = fun1(img)
r = sum(sum(img));
我正在考虑使用arrayfun来处理一系列图像(3D矩阵),从而消除对for循环的需要:
arrayfun(@fun1, imgStack);
但arrayfun尝试将imgStack的每个元素都视为fun1的输入,上一操作的结果也是3D矩阵。如何让arrayfun知道我只想在imgStack的第三个维度上重复fun1
另一个问题是,arrayfun是否并行调用fun1?
如果3D array a定义如下,
a <- rep(NA,200)
a <- array(data = a, dim = c(10,10,2))
a由10 (列)*10(行)矩阵的2层组成。我知道我可以使用ncol或nrow来计算a每一层的列数和行数。在这种情况下,我可以简单地手动计算a的层数,因为它只有2层数据;但如果a的层数要大得多(例如200或2000层,而不仅仅是2层),那么我无法手动计算a有多少层。
所以我想知道在R中是否有一个计算3D array的层数的函数。
有人能帮我吗?
我找过一个和我有同样问题的人,但我没有发现什么特别的问题。
我有一个三维矩阵( M ),我想从这个矩阵中得到二维矩阵m 和n 。我正在处理3D医学图像,我需要对我的病人有不同的看法;用这个代码获得m矩阵没有任何问题:
for z=1:length(z)
figure;
imshow (A (:,:,z))
end
但是如果我对其他变量做同样的操作,我得到的矩阵仍然是一个3D矩阵,我不能用"imshow“函数来显示它。
拜托,你能帮帮我吗?
非常感谢。
我在设置空numpy 3D矩阵中的值时遇到问题这里是我使用的代码的简化示例
import numpy as np
QMatrix = np.empty(((3,3,3))) # I do not want to use np.zero for a specific reason
QMatrix[0][0][0] = 57
print ("Position Values is " , Qmatrix[0][0][0])
这应该设置矩阵的值57 @ position,但是当我打印矩阵时,我得到的结果是
Position Value is 5.70000000e+001
但我想要的