2011-08-30 112 views
0

我需要編寫一個函數,其輸入參數應該是文件名,並且該函數將對打開的文件執行某些操作。下面是示例功能我寫的,使用字符串作爲參數寫入函數的問題

function readFile = loadOneColumnFile(fileName) 
fid1 = fopen(fileName); 
readFile = 0; 
fclose(fid1); 

但是,當我在命令控制檯調用此函數如下,

>> testValue = loadOneColumnCSV('/usr1/test.csv'); 

這個Matlab返回以下錯誤消息

?? ?未定義的函數或方法'loadOneColumnFile'用於類型爲'char'的輸入參數。

看起來像函數的定義是不正確的。如何解決它?謝謝。

+2

首先,你確定你拼寫正確的函數名?你在問題中使用了'loadOneColumnFile'和'loadOneColumnCSV'。然後,您應該將此函數保存在與該函數相同的文件中,以便將其保存在'loadOneColumnCSV.m'文件中 – Isaac

回答

0

MATLAB將字符串視爲字符數組(如C++,但字符串在MATLAB中不以空值終止除外)。

儘管有錯誤消息,但我不認爲字符串傳遞有任何問題。問題是MATLAB無法找到你的功能。所以:

  1. 包含函數必須具有相同的名稱功能(在你的情況下保存功能,在名爲loadOneColumnFile.m文件)(當前)目錄,以便
  2. loadOneColumnFile.m必須放置在工作文件MATLAB可以找到它。
  3. 該函數的名稱在您的問題中不一致。確保只使用loadOneColumnFileloadOneColumnCSV之一來命名函數和文件名。
相關問題