error in matrix multiplication
Afficher commentaires plus anciens
Hi
I'm getting a very confusing logic error in a MATLAB code.
two matrices K and D' are equal (isequal(K,D') gives 1)
while B*D' and B*K are not.
I know if I remove the permute and reshaping, then the problem is solved but this code here is a part of a larger project and it's not possible to do so.
The minimal code to reproduce the error is
clear all
close all
GT = rand(7,48,48);
GT_perm = permute(GT,[2 3 1]);
t_GT = rand(122,3);
B = rand(122,7);
param = [t_GT(:)',GT_perm(:)'];
K = reshape(GT,7,[]);
D = reshape(param(3*122+1:end),48^2,size(B,2));
isequal(K,D') %I receive 1 at this point which means these 2 variables are equal
ex_DB = B*D';
Image = B*K;
isequal(Image,ex_DB) %I receive 0 at this point which means the multiplication of the equal variables is not equal
sum(Image-ex_DB,'all')
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Matrix Indexing dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!