2013-03-16 101 views
-2

我想將我的文件名從abc.m文件傳遞到xyz.m文件...沒有任何回報。 請告訴我的語法來寫在兩個files.I試過這樣的事情: 在abc.m文件:在matlab中調用函數

xyz(filename); 

在xyz.m文件:

xyz(filename); 
+0

這還不清楚。 「沒有任何回報」是什麼意思? – 2013-03-16 10:03:11

+0

無返回值 – Twinkal 2013-03-16 10:46:31

+0

它不會返回任何東西,因爲您已經寫過它。 WTP ????? – 2013-03-16 13:51:27

回答

1

MATLAB功能這樣定義的:

function y = MyAddFunction(x, n) 
    y = x + n; 
end 

並且被稱爲照常:

foo = MyAddFunction(10, 5); 

如果你想多輸出值可以定義輸出這樣的:

function [y1 y2] = MyOtherFunction(x) 
    y1 = x + 3; 
    y2 = y1 + 5; 
end 
+0

感謝Fredrik,但我在這裏傳遞文件名...所以它仍然工作? – Twinkal 2013-03-16 10:47:19

+0

是的,你可以通過它們。 MATLAB可能會將其視爲一個字符串。 – 2013-03-16 16:49:47

+0

是的,它會工作,但作爲Parag狀態,Matlab會將它們視爲字符串,所以這種方法也應該負責首先檢查計算機上是否存在文件名/文件,將其打開以便讀/寫,執行一些操作,最後關閉文件句柄(然後繼續下一個文件名)。我還建議你輸出一些知道所請求的文件是否成功更新的方法。快樂的編碼! – Fredrik 2013-03-16 18:41:06

0

如果我理解正確的話,你所要求的是,你如何寫功能xyz.m使其沒有返回值,並且會對從abc.m中的函數傳遞它的文件名進行操作。

如果這是正確的,那麼答案很簡單,你定義功能XYZ沒有返回變量可言,像這樣:

function xyz(filename) 
    %code goes here 
end 

,然後在abc.m,簡單地稱呼其爲xyz(filename)。只要這兩個m文件都在適當的位置,以便matlab可以看到它們,它就可以工作。

文件名應該是一個字符串。我不相信你可以從fopen傳遞一個文件ID,如果這是你想要做的,雖然可能從任何函數都可以訪問一個打開的文件(我沒有真正測試過)。