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

2 次查看(过去 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 CenterFile Exchange 中查找有关 table 的更多信息

产品


版本

R2020b

Community Treasure Hunt

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

Start Hunting!