我正在创建一个带有两个输入的函数,并且想知道如何将输出命名为输入的名称。
E.g。
function [padded_*input_name*] = padstruct(S, F)
稍后在代码中......
else
padded_*input_name* = padarray(toPad, (longest - size(toPad,1)), NaN('double'), 'post');
因此,如果我输入一个名为S
的结构(在输入参数中标记为my_struct
),我希望得到一个名为padded_my_struct
的输出。但是这应该可以根据输入结构的名称自由更改。我想这样做,因为我有很多结构来运行这个函数,我想从输出名称明确地知道,哪个是。
我是Matlab的初学者,所以非常感谢任何摘要或文学参考。
答案 0 :(得分:1)
我不太给你你想要的东西。相反,我有一个函数,给定输入Account和F,在基础工作区中生成一个变量“padded_Account”,并返回它创建的变量的名称。
function padded_Sname_str=padstruct(Sin,F)
%get the name of the structure used in the function call here
Sname=inputname(1);
%do stuff to Sin here
Sin.pad=F; %this is just my test operation
%create the name of the new variable you want
padded_Sname_str=['padded_',Sname];
%this creates it in the base workspace, since passing back as an
%output argument doesn't preserve the name
assignin('base',padded_Sname_str,Sin)
return
希望这有帮助。干杯!
答案 1 :(得分:1)
试试这个 -
function [padded_*input_name*] = padstruct(S, F)
%// .. later on in code
else
value = padarray(toPad, (longest - size(toPad,1)), NaN('double'), 'post');
evalc(['padded_' inputname(1) '= value']);
告诉我们它是否适合您!