tableから新たなtableを作った際変数名が失われてしまう件について
조회 수: 1 (최근 30일)
이전 댓글 표시
前提として下のサイトを参考に質問しています。コードもサイトのをいじったものです。
コードを実行すると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
댓글 수: 0
채택된 답변
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',...にはならない
テーブル同士を連結すると変数名も付いて来ます。「データのコピー」ではなく「テーブルの連結」によって新たなテーブルを作成すれば、やりたい事を実現する事が出来ます。
T2 = T2(1:5,:);
T3 = []; % 一旦T3を空行列(テーブル)として定義する
for i = 1:1:3
T3 = [T3 T2(:,2 * i)]; % T3にT2を1列ずつ連結する
end
T3
댓글 수: 2
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!