文字ベクトルを変換する

8 views (last 30 days)
美紗子 馬渕
美紗子 馬渕 on 15 Dec 2022
Commented: 美紗子 馬渕 on 15 Dec 2022
現在、以下の状況です。
A=1200行×3列のtable形式
B=’C’の文字ベクトル
この状況から、C=A[1200行×3列のtable]となるようにしたいのですが、どのようにすべきでしょうか。

Accepted Answer

交感神経優位なあかべぇ
変数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 Comments
Atsushi Ueno
Atsushi Ueno on 15 Dec 2022
同意です。しかし何故 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
美紗子 馬渕
美紗子 馬渕 on 15 Dec 2022
お二方ともご回答いただき、ありがとうございます。
どちらの方法でも実行したかったことができました。
本当にありがとうございました。

Sign in to comment.

More Answers (0)

Categories

Find more on 数値型 in Help Center and File Exchange

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!