2010-01-01 64 views
5

基本上,我有10个数据文件,我写了一个MATLAB函数来处理这些数据。 的代码是这样的:如何在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)功能。

我该怎么做?

+0

对不起。它是我的代码中的'importdata'。 但我仍然收到错误。我甚至试图从Matlab命令行输入fitdata('file_one',','),但错误持续存在。 – ablimit 2010-01-02 18:25:26

+0

你的语法似乎没有任何明显的错误。你确定'importdata()'不是在文件上窒息?在MATLAB命令行上尝试'importdata('my_file_1',',')'。 – 2010-01-02 18:43:55

+0

importdata()是确定的。如果我声明一个字符串,如:file_path ='filename',并调用importdata(file_path,','),那么它的作品。 我认为唯一的问题是如何将一个字符串作为参数传递给一个函数。 – ablimit 2010-01-02 21:43:12

回答

4

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


以前的答案:

我想你的意思是使用IMPORTDATA函数而不是IMPORT,这是你所得到的错误可能的来源。

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

+0

感谢您的回答。 – ablimit 2010-01-02 18:54:14

相关问题