假设我们有一个3维数组F
和2维矩阵S
。
首先,我找到一个矩阵Y
与F
乘以S
。然后,我尝试从F
中找到F_est
的估计值(简称为Y
)作为代码中的健全性检查。
谁能看到逻辑上的缺陷,但我似乎不知道为什么F_est
并不完全是F
。
F= randn(2,4,600);
S= randn(4,600);
for i =1:size(F,1);
for j=1:size(F,2)
for k= 1:size(F,3)
Y(i,k)= F(i,j,k) * S(j,k);
end
end
end
for i =1:size(F,1)
for j=1:size(F,2)
for k= 1:size(F,3)
F_est(i,j,k)= Y(i,k) / S(j,k);
end
end
end
然后我尝试查看F_est - F
是否为零,而不是。有任何想法吗。非常感谢。
****评论后编辑
基于我得到的答案,我想知道下面的代码是否有意义?
for k=1:size(F,3)
Y(:,k) = squeeze(F(:,:,k)* S(:,k)
end
如果我有Y和S,我可以恢复F吗?
答案 0 :(得分:2)
创建Y
时,将连续替换其值。对于i,k
对中的任何值,您将覆盖Y
j
次!
这两个代码并不等效,因为F_est(i,j,k)
仅计算一次,但是您有Y(i,k)
j
次。
我不知道您要做什么,但是未定义3D矩阵与2D矩阵的乘法,并且它不是2D矩阵