現在、以下の状況です。
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!