[英]Matlab Attempt to execute script as a function
我有一個matlab腳本,我們稱其為“ master.m”,它會加載一個名為“ config.m”的文件。 config.m包含master.m中使用的所有變量,因此無需編輯任何代碼即可輕松更改它們。 問題是,我正在嘗試獲取master.m中的主要功能以根據用戶輸入加載config.m。 因此,基本上我希望用戶能夠指定要加載的文件的名稱。 例如,如果config.m被稱為testing.m,則用戶可以在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)
但無濟於事
有任何想法嗎?
我認為您想要的是:
master('config');
你差點就吃了! 將文件名用單引號引起來並刪除.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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.