tableから新たな​tableを作った際​変数名が失われてしま​う件について

7 ビュー (過去 30 日間)
NO MIYA
NO MIYA 2021 年 8 月 2 日
編集済み: NO MIYA 2021 年 11 月 26 日
 前提として下のサイトを参考に質問しています。コードもサイトのをいじったものです。
 コードを実行するとtable型変数T2, T3は画像のようになります。
T3の変数名がVar2, Var3と、T2では維持されていた変数名が失われてしまっていますので解決策を教えていただきたいです。
 
T2 = readtable('patients.dat');
T2 = T2(1:5,:);
for i =1:1:3
T3(:,i) = T2(:,2 * i);
end

採用された回答

Atsushi Ueno
Atsushi Ueno 2021 年 8 月 2 日
編集済み: Atsushi Ueno 2021 年 8 月 2 日
「T2では維持されていた変数名がT3では失われてしまった」のではなく「T3の変数名(指定しなかったのでVar2, Var3)を(T2からの値コピーにより)変更できない」のです。何故T3の1列目の変数だけコピーできたかと言うと、T2をテーブルとしてT3に代入したからです。
テーブルの任意列を別の(既存)テーブルの任意列にコピーしても値だけがコピーされ、列名は変更されません。
T2 = readtable('patients.dat');
T4 = T2(1:5,:); T5 = T4;
T5(:,1) = T4(:,2) % 値はコピーされるが、'Gender','Gender','Age',...にはならない
T5 = 5×10 table
LastName Gender Age Location Height Weight Smoker Systolic Diastolic SelfAssessedHealthStatus __________ __________ ___ _____________________________ ______ ______ ______ ________ _________ ________________________ {'Male' } {'Male' } 38 {'County General Hospital' } 71 176 1 124 93 {'Excellent'} {'Male' } {'Male' } 43 {'VA Hospital' } 69 163 0 109 77 {'Fair' } {'Female'} {'Female'} 38 {'St. Mary's Medical Center'} 64 131 0 125 83 {'Good' } {'Female'} {'Female'} 40 {'VA Hospital' } 67 133 0 117 75 {'Fair' } {'Female'} {'Female'} 49 {'County General Hospital' } 64 119 0 122 80 {'Good' }
テーブル同士を連結すると変数名も付いて来ます。「データのコピー」ではなく「テーブルの連結」によって新たなテーブルを作成すれば、やりたい事を実現する事が出来ます。
T2 = T2(1:5,:);
T3 = []; % 一旦T3を空行列(テーブル)として定義する
for i = 1:1:3
T3 = [T3 T2(:,2 * i)]; % T3にT2を1列ずつ連結する
end
T3
T3 = 5×3 table
Gender Location Weight __________ _____________________________ ______ {'Male' } {'County General Hospital' } 176 {'Male' } {'VA Hospital' } 163 {'Female'} {'St. Mary's Medical Center'} 131 {'Female'} {'VA Hospital' } 133 {'Female'} {'County General Hospital' } 119
  2 件のコメント
Atsushi Ueno
Atsushi Ueno 2021 年 8 月 2 日
さも知っているように回答しましたが、今仕様を理解しました。
NO MIYA
NO MIYA 2021 年 10 月 15 日
返信遅くなってしまい申し訳ありません!
とても丁寧にありがとうございました!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

製品


リリース

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!