フィルターのクリア

文字ベクトルを変換する

1 回表示 (過去 30 日間)
美紗子 馬渕
美紗子 馬渕 2022 年 12 月 15 日
コメント済み: 美紗子 馬渕 2022 年 12 月 15 日
現在、以下の状況です。
A=1200行×3列のtable形式
B=’C’の文字ベクトル
この状況から、C=A[1200行×3列のtable]となるようにしたいのですが、どのようにすべきでしょうか。

採用された回答

交感神経優位なあかべぇ
交感神経優位なあかべぇ 2022 年 12 月 15 日
変数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 件)

カテゴリ

Help Center および File Exchange数値型 についてさらに検索

製品


リリース

R2022a

Community Treasure Hunt

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

Start Hunting!