行列範囲を指定して合計値を算出したい
14 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Raki Kawama
le 1 Déc 2021
Réponse apportée : Raki Kawama
le 1 Déc 2021
20行×6列からなるデータ(data)から、1列目全体を指定して、合計値を算出したいです。
現在、以下の構文を用いているのですが1行目の1列目しか指定できません。
A = data{:,1};
Atotal = sum(data);
A = data(:,1);とした場合だと1列目全体の指定が可能なのですが、sumにする際に「データ型が無効です。最初の引数は数値または論理値でなければなりません。」とエラーが出てしまいます。
Matlab初心者で大変恐縮ですが、よろしくお願いいたします。
0 commentaires
Réponse acceptée
Plus de réponses (1)
Atsushi Ueno
le 1 Déc 2021
%% サンプルデータの作成
data = num2cell(rand(3).*100) % 20行×6列ではなく3行×3列に減らしています
%%【方法1】cell2mat関数でセル配列を行列(orベクトル)に変換する
A = cell2mat(data(:,1))
Atotal = sum(A)
%%【方法2】cat関数でセルの中身data{:,1}を結合する
A = cat(1,data{:,1}) % cat関数の他に[data{:,1}]'と言う書き方もある
Atotal = sum(A)
%%【参考】質問のエラーを再現
A = data(:,1) % data(:,1)とした場合だと1列目全体の指定が可能なのですが
Atotal = sum(A) % sumにする際に「データ型が無効です。最初の引数は数値または論理値でなければなりません。」とエラーが出てしまいます。
0 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!