簡體   English   中英

MATLAB App Designer 應用程序能否啟動保存數字的腳本?

[英]Can a MATLAB App Designer app launch a script which saves figures?

App Designer 不支持 saveas、savefig 或 print ,但有沒有辦法使用它來啟動支持的 MATLAB 程序?

我正在使用一個有數千行代碼的 MATLAB 程序,而不是我的全部。 該程序保存數字以供以后參考,一些為 .fig 格式,一些為 PDF。 它運行良好,但每次運行都有許多選項可供選擇,目前通過編輯主腳本頂部的值來完成。 我想添加一個 GUI 來簡化它。

我知道還有其他方法,但 App Designer 似乎是使用“現代”的東西。 我可以將它用作現有腳本的啟動器嗎? 如果我只是按如下所示調用它,App Designer 的圖形限制適用於整個腳本,它會執行所有計算,但在第一次“打印”時失敗。 我希望有另一種方式。

    % Callback function
    function GoButton_2Pushed(app, event)
        % Save values for GUI restart.
        setKeySaveState(app);            
        % Use a struct to pass values to the model.
        scriptVars = app.modelVars;
        % Run
        The_Name_of_My_Script
    end

我可以讓 GUI 以 json 格式將結構寫入文件,手動啟動主腳本,然后讓它讀取文件。 但這似乎很愚蠢。

編輯:以下是來自 MATLAB 命令窗口的錯誤消息:

使用打印時出錯(第 79 行)使用 uifigure 函數創建的圖形不支持該功能。 有關更多信息,請參閱 App 設計工具中的圖形支持。

MapsCoralCoverClean>oneMap 中的錯誤(第 298 行) print('-dpdf', '-r200', outFile);

MapsCoralCoverClean 錯誤(第 70 行)oneMap(13, activeLatLon(:, 1), activeLatLon(:, 2), events85_2010(activeReefs), [], jet, tName, outFile, false);

A_Coral_Model_170118 中的錯誤(第 780 行) MapsCoralCoverClean(fullMapDir,Reefs_latlon,toDo,lastYearAlive,...

ModelGUI_2017a/GoButton_2Pushed 中的錯誤(第 465 行)A_Coral_Model_170118 錯誤使用 matlab.ui.control.internal.controller.ComponentController/executeUserCallback(第 310 行)評估 Button PrivateButtonPushedFcn 時出錯。

我發現最好的做法是始終明確地提供圖形對象的句柄,因為依賴 MATLAB 的當前圖形當前軸通常不一致並可能導致問題。

除非明確提供,否則print將根據傳遞的其他參數保存當前圖形。 在這種情況下,您的uifigure窗口在執行其他處理功能期間仍保持當前圖形,導致print出錯,因為它尚未針對某些新圖形對象實現(為什么,MathWorks,為什么!?)。 要解決此問題,請將處理函數的figure調用的輸出作為第一個輸入傳遞給print

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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