cell内の数値に対して計算するにはどうすればいいですか?
36 ビュー (過去 30 日間)
古いコメントを表示
サイズが 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 件のコメント
採用された回答
交感神経優位なあかべぇ
2022 年 11 月 19 日
例として、セルの変数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)
その他の回答 (1 件)
Atsushi Ueno
2022 年 11 月 19 日
編集済み: Atsushi Ueno
2022 年 11 月 19 日
>サイズが 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 件のコメント
参考
カテゴリ
Help Center および File Exchange で Resizing and Reshaping Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!