在复杂的矩阵乘法之后,我需要帮助找到矩阵和两个向量的一些索引位置,请耐心等待,先阅读我的内容,我的问题在最后。
我有两个矩阵L1
和L2
:
L1 = firstMatrix;
L2 = secondMatrix;
我需要计算每个单个值L1
与 的所有值的差异(按列) L2
,再次以按列的形式,按如下方式完成:
第一步
lib1 = bsxfun(@minus, L1(:,1)',L2(:,1));
lib1=lib1(:);
lib2 = bsxfun(@minus, L1(:,2)',L2(:,2));
lib2=lib2(:);
lib3 = bsxfun(@minus, L1(:,3)',L2(:,3));
lib3=lib3(:);
最后我有我的新矩阵LBR
:
LBR = [lib1 lib2 lib3];
现在,我有两个向量alpha
和beta
- 在具有相同步长的封闭域上给出,在这种情况下它们是相同的 -。
alpha = 0:0.1:2;
beta = 0:0.1:2;
我现在需要计算张量积,我可以通过两种方式完成:
第二步
第一种方式:
alphat1 = kron(alpha,lib1);
alphat2 = kron(alpha,lib2);
alphat3 = kron(alpha,lib3);
T1 = [alphat1 alphat2 alphat3];
betat1 = kron(beta,lib1);
betat2 = kron(beta,lib2);
betat3 = kron(beta,lib3);
T2 = [betat1 betat2 betat3];
或者,第二种方式,即通过bsxfun
来自 matlab 的方式:
val = bsxfun(@times,LBR,permute(alpha,[3 1 2]));
T = reshape(permute(val,[1 3 2]),size(val,1)*size(val,3),[]);
val2 = bsxfun(@times,LBR,permute(beta,[3 1 2]));
T2 = reshape(permute(val2,[1 3 2]),size(val2,1)*size(val2,3),[]);
我的问题:
我需要通过min-distance
以下方式找到,首先,我当然有三个常量:
gama1 = value1;
gama2 = value2;
gama3 = value3;
计算min-distance
如下:
第三步
[d,p] = min(((T(:,1)-T2(:,1))-gama1).^2 + ((T(:,2)-T2(:,2))-gama2).^2 +
((T(:,3)-T2(:,3))-gama3).^2);
d = sqrt(d);
我非常需要 , 和 的索引位置L1
来L2
解决alpha
这个beta
问题min-distance
。
我尝试了以下方法:
第四步
[minindex_alongL2, minindex_alongL1, minindex_alongalpha, minindex_alongbeta] =
ind2sub([size(L2,1) size(L1,1) numel(alpha) numel(beta)],p);
但它不起作用。我将非常感谢您为我提供的所有帮助!
提前致谢。