gpt4 book ai didi

Matlab:将 'who' 输出作为参数传递

转载 作者:行者123 更新时间:2023-12-04 06:04:37 26 4
gpt4 key购买 nike

我编写了一个函数,它获取输入变量的名称和值并将它们写入文件。例如。

a = 10;
b = 100;
writevars('file.txt',a,b);

给我一个文件 file.txt其中包含:
\def\a{\num{10}}
\def\b{\num{100}}

现在希望能够传递使用 who 找到的所有变量。命令。例如,如果 who返回:
a    b    z

我希望能够使用 writevars好像我打过电话 writers('file.txt', a, b, z) .

我遇到的主要问题是 writevars 使用了 inputname ...(临时变量不起作用,例如 writevars('file.txt', 100) 不起作用,因为文件中没有给出名称)。

回答
var_names = who;
for i = 1 : length(var_names)
evalin('caller',['writevars(''file.txt'', ' char(var_names(i)) ' )']);
end

最佳答案

您可以使用 EVALIN运行 who从内部 writevars ,例如

function writevars(filename,varargin)

%# get a list of variable names in the calling workspace and read their values
if isempty(varargin)
listOfVars = evalin('caller','who');
values = cell(size(listOfVars));
for i=1:length(listOfVars)
values{i} = evalin('caller',listOfVars{i});
end
else
%# use inputname to read the variable names into listOfVars
end

%# --- rest of writevars is here ---

关于Matlab:将 'who' 输出作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8510447/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com