Multiply a cell array with a scalar
35 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi, I have a cell array that contain a number of different sized matrices. I need to multiply each of these cell elements, where the number of cells is not constant, with a single scalar value. Does anyone know how to do this? It does not work with the standard call of cellfun since the cells are of different size,
cellfun(@times,a,{2})
The reason is that I use matlab as an interface to create stuff to another program and I depending on what item I create I need to use different tones on the colormaps.
0 commentaires
Réponse acceptée
Azzi Abdelmalek
le 10 Fév 2014
Modifié(e) : Azzi Abdelmalek
le 10 Fév 2014
yournumber=2;
a={[1 2 3],[2 5;6 8], [2 5 8 7]}
cellfun(@(x) x*yournumber,a,'un',0)
4 commentaires
Andrew Bliss
le 4 Août 2016
Modifié(e) : Andrew Bliss
le 4 Août 2016
'un',0 is a shorthand way of writing 'UniformOutput',false See the help for what that means - in essence it will make cellfun output a cell rather than an array.
swenia
le 4 Fév 2020
Modifié(e) : swenia
le 4 Fév 2020
This is very helpful, thanks. Follow-up question: what if I'd like to multiply each cell element with a different number stored in a vector?
For instance:
a = {[1 2; 3 4], [5 6; 7 8]}
b = [0;1]
I'd like to multiply a and b such that the result will be:
ans = {[0 0; 0 0], [5 6; 7 8]}
Edit: Nvm, I found the answer here: https://www.mathworks.com/matlabcentral/answers/476131-how-to-multiply-each-element-of-a-cell-array-by-a-different-scalar
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Structures dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!