行列範囲を指定して合計値を算出したい
15 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Raki Kawama
am 1 Dez. 2021
Beantwortet: Raki Kawama
am 1 Dez. 2021
20行×6列からなるデータ(data)から、1列目全体を指定して、合計値を算出したいです。
現在、以下の構文を用いているのですが1行目の1列目しか指定できません。
A = data{:,1};
Atotal = sum(data);
A = data(:,1);とした場合だと1列目全体の指定が可能なのですが、sumにする際に「データ型が無効です。最初の引数は数値または論理値でなければなりません。」とエラーが出てしまいます。
Matlab初心者で大変恐縮ですが、よろしくお願いいたします。
0 Kommentare
Akzeptierte Antwort
Weitere Antworten (1)
Atsushi Ueno
am 1 Dez. 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 Kommentare
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!