現在、以下の状況です。
A=1200行×3列のtable形式
B=’C’の文字ベクトル
この状況から、C=A[1200行×3列のtable]となるようにしたいのですが、どのようにすべきでしょうか。

 採用された回答

交感神経優位なあかべぇ
交感神経優位なあかべぇ 2022 年 12 月 15 日

1 投票

変数Bの中の文字列を変数名として格納したいということでしょうか?
少し強引な気がしますが、assigninを無名関数から呼び出してみました。(変数Cをベースワークスペースに保存する用途でしたら、assignin('base' でスマートに実装ができます。)
testFcn();
C = 1200×3 table
Var1 Var2 Var3 ____ ____ ____ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
function testFcn();
tableData = num2cell(zeros(1200, 3), 1);
A = table(tableData{:});
B = 'C';
fcnHdl = @() assignin('caller', B, A);
fcnHdl();
C % 変数Cの内容の確認
end

2 件のコメント

Atsushi Ueno
Atsushi Ueno 2022 年 12 月 15 日
同意です。しかし何故 assignin 関数を使ったのか気になったのでコメントしておきます。
eval 関数を使って、やりたい事と1対1に対応したシンプルな書き方に出来ますよ。
temp = zeros(1200,1);
A = table(temp,temp,temp); % A=1200行×3列のtable形式
B = 'C'; % B= C の文字ベクトル
eval([B ' = A;']); % C=A[1200行×3列のtable]となるようにしたい
whos A B C
Name Size Bytes Class Attributes A 1200x3 30223 table B 1x1 2 char C 1200x3 30223 table
美紗子 馬渕
美紗子 馬渕 2022 年 12 月 15 日
お二方ともご回答いただき、ありがとうございます。
どちらの方法でも実行したかったことができました。
本当にありがとうございました。

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で データ型の変換 についてさらに検索

製品

リリース

R2022a

Community Treasure Hunt

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

Start Hunting!