2012-03-22 17 views
0

我有一個matlab腳本,讓我們稱之爲「master.m」,加載一個名爲「config.m」的文件。 config.m包含master.m中使用的所有變量,以便在不編輯任何代碼的情況下輕鬆更改它們。問題是,我正在嘗試讓master.m中的主函數根據用戶輸入來加載config.m。所以基本上我希望用戶能夠指定要加載的文件的名稱。例如,如果config.m被稱爲testing.m然後用戶可以輸入在MATLAB提示:Matlab嘗試執行腳本作爲函數

>> master(testing.m) 

,它會加載該文件。但我不知道如何正確地做到這一點,我已經看過eval函數,但它給了我一個錯誤。這裏是我到現在爲止在master.m代碼:

function [X,Y] = master(file) 
eval(file) 

然而,當我在MATLAB提示符下運行:

>> master(config.m) 
??? Attempt to execute SCRIPT config as a function: 
/home/myusername/config.m 

我也曾嘗試master('config.m')master('./config.m')master(config)master(config.m)但無效

任何想法?

回答

4

我想你想要的是:

master('config'); 
+0

哇,這是如此簡單!我吮吸matlab語法,但這工作! – 2012-03-22 17:01:12

3

你幾乎擁有了!將文件名用單引號括起來,然後放下.m應該可以做到。在Matlab R2011b(Linux)中,以下工作適用於文件master.m和config.m在同一文件夾中。

master.m:

function X = master(filename) 
eval(filename); 
X = a^2; 
end 

config.m:

a = 2; 
disp('Testing config.m'); 

在控制檯:

>> master('config') 
Testing config.m 
ans = 
    4