Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这个矩阵乘法在MATLAB中有意义吗?_Matlab_Matrix - Fatal编程技术网

这个矩阵乘法在MATLAB中有意义吗?

这个矩阵乘法在MATLAB中有意义吗?,matlab,matrix,Matlab,Matrix,我的特定应用程序要求我执行以下操作: 对张量的一块板进行SVD分解(我们称之为大小为[Nr,Nt,Nsub]的张量F) 获取此板的正确奇异矩阵(称之为矩阵V) 将板与右奇异矩阵的子集相乘 将结果乘以另一个向量(s,维度nx1) 我的问题是:这个矩阵乘法有什么意义吗,或者我做了什么错事,因为我有一个隐含性,一个三维矩阵乘以一个二维矩阵。。。换句话说,我是否覆盖了值 如果我的问题不清楚,我可以编辑它。。谢谢。您没有覆盖值,但是您应该在循环之前预先分配Y。这是否合理取决于数据的含义。感谢您的回复,

我的特定应用程序要求我执行以下操作:

  • 对张量的一块板进行SVD分解(我们称之为大小为[Nr,Nt,Nsub]的张量
    F
  • 获取此板的正确奇异矩阵(称之为矩阵
    V
  • 将板与右奇异矩阵的子集相乘
  • 将结果乘以另一个向量(
    s
    ,维度
    nx1
我的问题是:这个矩阵乘法有什么意义吗,或者我做了什么错事,因为我有一个隐含性,一个三维矩阵乘以一个二维矩阵。。。换句话说,我是否覆盖了值


如果我的问题不清楚,我可以编辑它。。谢谢。

您没有覆盖值,但是您应该在循环之前预先分配
Y
。这是否合理取决于数据的含义。感谢您的回复,预分配意味着什么?你能给我举个例子吗?你的意思是初始化Y=0(Nr,Nlayer)?谢谢你@Crisluengo是的,就是这样。我在你的代码里没看到。预分配并不是绝对必要的,但会加快代码的速度。不过,在这种情况下,可能需要它?谢谢你,克里斯。我一定可以查一下。还有一个问题,我希望你能进一步帮助我。你看,我不久前就写了这个问题,它的想法非常相似:我得到的答案是,我在上一个问题中所做的是错误的,我想知道我在这里所做的为什么是正确的,但在我的上一个问题中,我覆盖了@克里斯卢恩戈。。多谢各位/
for k=1:size(F,3)
    H= squeeze(F(:,:,k));
    [U,Sigma,V]= svd(H);
    V= V(:,1:n);
    Y(:,k) = H * V* s; 
end