查看单个帖子
旧 2019-12-10, 20:30   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 如何在MATLAB中将字符串作为函数参数传递?

基本上,我有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)函数的调用中出现“输入参数太多”错误。

我应该怎么做?



回答:

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

先前的答案:

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

另一条建议:最好不要命名您的变量path ,因为已经有一个函数PATH 。最终将使用该变量而不是使用函数(基于MATLAB优先规则 ),该函数在特定情况下仍然是您想要的,但在其他情况下却会引起混淆和错误。



更多&回答...
poster 当前离线   回复时引用此帖