MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   资料存档 (https://www.labfans.com/bbs/forumdisplay.php?f=72)
-   -   如何在MATLAB中将字符串作为函数参数传递? (https://www.labfans.com/bbs/showthread.php?t=23025)

poster 2019-12-10 20:30

如何在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)函数的调用中出现“输入参数太多”错误。

我应该怎么做?



[B]回答:[/B]

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

[I]先前的答案:[/I]

我认为您的意思是使用[URL="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/importdata.html"]IMPORTDATA[/URL]函数而不是[URL="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/import.html"]IMPORT[/URL] ,这可能是您收到的错误的来源。

另一条建议:最好不要命名您的变量path ,因为已经有一个函数[URL="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/path.html"]PATH[/URL] 。最终将使用该变量而不是使用函数(基于[URL="http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_prog/f10-60956.html"]MATLAB优先规则[/URL] ),该函数在特定情况下仍然是您想要的,但在其他情况下却会引起混淆和错误。



[url=https://stackoverflow.com/questions/1989919]更多&回答...[/url]


所有时间均为北京时间。现在的时间是 00:55

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.