Multiply each column by a elements of cell array
Afficher commentaires plus anciens
hey
i have a matrix like this:
matrix=
0 2 4
3 0 0
0 1 0
3 0 1
0 0 0
and cell array: mul={1,1,0.6,0.6,0.3}
i want to multiply all columns by 'mul' and then add. e.g. [0x1 + 3x1 + 0x0.6 + 3x0.6 + 0x0.3] and same for all other columns.
Thanks
Réponse acceptée
Plus de réponses (2)
Guillaume
le 13 Juin 2017
Conceptually it would make a lot more sense for your cell array to be a column rather than a row.
Anyway, the easiest way to do what you want is to convert your cell array into a column vector. It is then trivial to multiply it with the matrix:
result = sum(matrix .* cell2mat(mul')); %requires R2016b or later
%in <R2016b: result = sum(bsxfun(@times, matrix, cell2mat(mul')));
1 commentaire
lucksBi
le 13 Juin 2017
Andrei Bobrov
le 13 Juin 2017
result = matrix.'*cat(1,mul{:});
or
result = [mul{:}]*matrix;
1 commentaire
lucksBi
le 13 Juin 2017
Catégories
En savoir plus sur Logical dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!