簡體   English   中英

Matlab嘗試將腳本作為函數執行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM