[MATLAB] question sur une somme dans une cell
sam
-
tug83 -
tug83 -
Salut,
petite question très idiote mais je sèche là :
j'ai ce code sous matlab :
la ligne " contribmat{j} = contrib{j,1}.+contrib{j,2}; "
est comme ça pour i = 2 mais pour i= 5 par exemple, ça devrait être
contribmat{j} = contrib{j,1}.+contrib{j,2}.+contrib{j,3}.+contrib{j,4}.+contrib{j,5};
comment je peux simplifier et automatiser cette écriture, parce que dans mon cas ici, si i passe à 5 ça ne va pas marcher sans intervenir dans le code et changer la ligne à la main ?
La fonction sum ne marche pas sur les éléments d'une cellule. Et j'ai l'impression que c'est facile à réaliser mais je passe à côté.
merci
si ça peut aider, ma cellule contrib est composée de plusieurs matrices de dimensions similaires :
contrib =
[43x105] [43x105]
[43x105] [43x105]
[43x105] [43x105]
[43x105] [43x105]
...
Et en gros pour chaque lignes, je veux une matrice "somme [43x105]" qui soit la somme des matrices de la ligne en question. Le nombre de colonnes de la cellule contrib pouvant varier.
petite question très idiote mais je sèche là :
j'ai ce code sous matlab :
for j=1:size(factors{1},1) for i=1:taille contrib{j,i} = a(j,i)*za(:,:,i); end contribmat{j} = contrib{j,1}.+contrib{j,2}; end
la ligne " contribmat{j} = contrib{j,1}.+contrib{j,2}; "
est comme ça pour i = 2 mais pour i= 5 par exemple, ça devrait être
contribmat{j} = contrib{j,1}.+contrib{j,2}.+contrib{j,3}.+contrib{j,4}.+contrib{j,5};
comment je peux simplifier et automatiser cette écriture, parce que dans mon cas ici, si i passe à 5 ça ne va pas marcher sans intervenir dans le code et changer la ligne à la main ?
La fonction sum ne marche pas sur les éléments d'une cellule. Et j'ai l'impression que c'est facile à réaliser mais je passe à côté.
merci
si ça peut aider, ma cellule contrib est composée de plusieurs matrices de dimensions similaires :
contrib =
[43x105] [43x105]
[43x105] [43x105]
[43x105] [43x105]
[43x105] [43x105]
...
Et en gros pour chaque lignes, je veux une matrice "somme [43x105]" qui soit la somme des matrices de la ligne en question. Le nombre de colonnes de la cellule contrib pouvant varier.
A voir également:
- [MATLAB] question sur une somme dans une cell
- Faire une somme sur excel - Guide
- Somme si couleur - Guide
- Starlink direct to cell prix - Accueil - Opérateurs & Forfaits
- Somme en anglais excel - Guide
- SOMME SI COULEUR ✓ - Forum Excel
cellfun permet d'appliquer une fonction courante telle que sum , isempty à une cellule
Exemple :
>> A = magic(3)
>> B = sum(sum(A))
ans = 45
Maintenant avec une cellule:
>> sum({A})
Undefined function 'sum' for input arguments of type 'cell'.
ce que du as du avoir
donc la solution est comme je disais :
sum(cell2mat(cellfun(@sum,{A},'uni',false)))
ans = 45
Aurélien
http://blog.developpez.com/matlab4geek/