cell内の数値に対して計算するにはどうすればいいですか?
70 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
サイズが 3×1 cell の数値が入った関数 D があり、下記に示す計算をしたいと考えています。
1×1のcellに対して
A1 = 20 ./ D (Dは1×1部分の数値)
2×1のcellに対して
A2 = 21 ./ D (Dは2×1部分の数値)
3×1のcellに対して
A3 = 22 ./ D (Dは3×1部分の数値)
X = (A1+A2+A3) ./ 3
実際はcellサイズがもう少し大きく、よい書き方がわかりません。
説明が下手ですが、ご教授いただければと思います。
0 commentaires
Réponse acceptée
交感神経優位なあかべぇ
le 19 Nov 2022
例として、セルの変数Dの要素を10にして、作成します。
N = 10;
D = num2cell(rand(N, 1))
数値が入ったセル配列はcell2matで数値化できます。
DNum = cell2mat(D)
Aを算出する分子とする連番を作成します。
seriesNum = (0 : length(D) - 1)';
numerators = 20 + seriesNum
Dのそれぞれの要素に対して割り算してから平均Xを求めます。
A = numerators ./ DNum; % 変数AはA1 ~ A10までの数値が格納された配列
X = mean(A)
Plus de réponses (1)
Atsushi Ueno
le 19 Nov 2022
Modifié(e) : Atsushi Ueno
le 19 Nov 2022
>サイズが 3×1 cell の数値が入った関数 D があり
数値はスカラ、「関数 D」は関数ではなく変数であると認識してます。誤認識あればお知らせ願います。
D = {1;3;2}; % 除数
N = {20;21;22}; % 被除数
%A = cellfun(@(x) 20 ./ x, D) % 1×1のcellに対して...ではなく 3×1 cell 全体に対して
A = cellfun(@(x,y) y ./ x, D, N) % 1×1のcellに対して...ではなく 3×1 cell 全体に対して
X = mean(A)
3 commentaires
Voir également
Catégories
En savoir plus sur Logical 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!