0
是否有一種方法可以爲用戶提供的變量名賦值?將值賦給Matlab中的變量名稱
我想到的東西沿着這些路線:
function varargout=my_fun(varargin)
for i=1:2:nargin
eval('varargin{i}=varargin{i+1}')
end
>> my_fun('a',1,'b',2)
>> a
1
>> b
2
,但它不工作。
是否有一種方法可以爲用戶提供的變量名賦值?將值賦給Matlab中的變量名稱
我想到的東西沿着這些路線:
function varargout=my_fun(varargin)
for i=1:2:nargin
eval('varargin{i}=varargin{i+1}')
end
>> my_fun('a',1,'b',2)
>> a
1
>> b
2
,但它不工作。
您可以使用assignin
來做到這一點,但我強烈建議不要使用這樣的解決方案。它違反了變量範圍的共同期望。除此之外,assignin
和eval
是混淆matlab編輯器的兩個最佳選項,這會導致許多無用的建議和警告。
如果你真的需要這樣的解決方案:
assignin('caller',varargin{i},varargin{i+1})
分配給呼叫者的工作空間。
非常感謝!這很好!我會小心使用它,雖然:) – HappyPy