如何在MATLAB中将字符串作为函数参数传递?

abl*_*mit 5 string matlab arguments function

基本上,我有10个数据文件,我写了一个MATLAB函数来处理这些数据.代码是这样的:

function Z = fitdata(file_path)

  A = importdata(file_path,',');
  ...

end
Run Code Online (Sandbox Code Playgroud)

由于我不想输入相同的命令10次(对于不同的文件名),我编写了另一个脚本来自动执行此处理.代码如下所示:

function X = automate()

  myarray = {'file_one', 'file_two', 'file_three',......,'file_ten'};
  for i = 1:9
    mypath = myarray{i};
    W = fitdata(mypath);
    ...
  end

end
Run Code Online (Sandbox Code Playgroud)

但是我在调​​用fitdata(file_path)函数时收到错误"Too many input arguments".

我该怎么做?

gno*_*ice 4

编辑:由于下面的建议没有解决问题,并且由于您发布的代码似乎没有任何其他错误,因此我接下来会检查以确保fitdata上面给出的版本是该名称的唯一函数在 MATLAB 路径上。您可能无意中创建了另一个函数或脚本并将其另存为fitdata.m,并且可能会调用该函数或脚本而不是您上面创建的版本。


之前的回答:

我认为您的意思是使用IMPORTDATA函数而不是IMPORT,这可能是您收到的错误的来源。

另外一条建议:最好不要命名变量之一path,因为已经有一个函数PATH。最终将使用变量而不是函数(基于MATLAB 优先规则),这仍然是您在这种特定情况下希望发生的情况,但在其他情况下会造成混乱和错误。