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

时间:2010-01-01 22:43:49

标签: string matlab function arguments

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

function Z = fitdata(file_path)

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

end

由于我不想输入相同的命令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

但是我在调​​用fitdata(file_path)函数时收到错误“输入参数太多”。

我该怎么做?

1 个答案:

答案 0 :(得分:4)

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


上一个回答:

我认为您的意思是使用IMPORTDATA函数而不是IMPORT,这可能是您获得错误的原因。

另外一条建议:最好不要命名一个变量path,因为已经有一个函数PATH。该变量将最终被用于代替函数(基于MATLAB precedence rules),这仍然是您希望在这种特定情况下发生的事情,但在其他情况下是混淆和错误的来源。