動與軟著申請全攻略)
這次我們直接聊 MATLAB App Designer。很多人寫算法、跑仿真很熟練但一到“把程序變成能給別人用的界面”就頭疼。App Designer 是 MATLAB 自帶的 APP 開發(fā)環(huán)境不需要額外裝工具包用拖拽的方式搭界面再寫回調函數(shù)把邏輯接進去幾分鐘就能把一個 GUI 程序跑起來。這篇文章會從界面設計、回調函數(shù)編寫、Simulink 模型聯(lián)動到打包發(fā)布和軟件著作權申請材料準備完整走一遍流程。重點解決三個問題第一怎么在 4 分鐘級別搭出一個能用的 APP第二怎么把 Simulink 仿真模型嵌到 APP 界面里顯示輸入輸出第三如果想要申請軟件著作權源代碼和操作手冊這些材料怎么從 MATLAB 工程里整理出來。文章最后會列出常見報錯和排查思路照著做基本就能避坑。1. 核心能力速覽能力項說明項目類型MATLAB 官方集成開發(fā)環(huán)境用于設計桌面端 GUI 程序工具來源MathWorks 官方組件隨 MATLAB 一起安裝支持平臺Windows、Linux、macOS只要對應平臺有 MATLAB 版本即可主要功能可視化界面拖拽、組件屬性編輯、回調函數(shù)編程、Simulink 聯(lián)動、APP 打包發(fā)布界面設計方式通過圖形式設計畫布拖拽按鈕、輸入框、坐標區(qū)、儀表盤等控件代碼編寫方式每個組件對應回調函數(shù)編寫 MATLAB 代碼控制界面邏輯是否支持 Simulink支持可調用 Simulink 模型并顯示仿真結果是否支持打包支持通過 MATLAB Compiler 打包為獨立可執(zhí)行程序是否可用于申請軟著可以需準備完整源代碼文檔和用戶操作手冊是否免費否需要 MATLAB 授權許可部分功能需額外工具箱適合場景科研演示、課程設計、算法封裝、內部工具、小型專業(yè)軟件2. 適用場景與使用邊界App Designer 最適合做“算法 界面”深度綁定的桌面工具。典型場景有幾類實驗室里的數(shù)據(jù)采集與處理軟件把濾波、擬合、統(tǒng)計分析的代碼封裝成按鈕和輸入框教學演示程序比如讓 App Designer 調用 Simulink 模型把仿真波形直接顯示在 APP 界面上學生操作起來比一屋子人盯命令行直觀得多還有工程預研階段的快速原型驗證先做個界面驗證交互邏輯再決定要不要投入人力去做正式產品。這個工具不適合大型生產級軟件。App Designer 編譯出來的程序運行時需要 MATLAB Runtime 環(huán)境界面性能、并發(fā)處理能力離商業(yè) C/S 架構軟件還有差距。如果目標是被幾十個人同時訪問、需要數(shù)據(jù)庫連接池、需要跨語言服務調用那 App Designer 做原型可以做生產系統(tǒng)不現(xiàn)實。從合規(guī)角度使用 App Designer 開發(fā)軟件前要確認 MATLAB 授權類型公司或學校內部部署需要合法場地授權。使用第三方工具箱時也要注意 License 覆蓋范圍。若后續(xù)申請軟件著作權提交的源代碼必須是本項目實際使用的 MATLAB 代碼操作手冊需要完整描述安裝、啟動、操作、異常處理流程不能拿通用模板硬湊。3. 環(huán)境準備與前置條件開發(fā) App Designer 不需要搭復雜的依賴環(huán)境核心前置條件只有兩條安裝 MATLAB并確認當前版本包含 App Designer 組件。自 R2016a 以后App Designer 隨 MATLAB 主程序一起發(fā)布安裝時勾選 MATLAB 本體即可不需要單獨選工具箱。具體環(huán)境清單如下操作系統(tǒng)Windows 10/11、Ubuntu 20.04 及以上、macOS 12 及以上MATLAB 版本R2016a 及以上推薦 R2020a 以后版本組件支持更完整磁盤空間MATLAB 完全安裝約需 30GB 左右視所選工具箱而定內存建議 8GB 以上運行 Simulink 仿真建議 16GB顯卡不做強制要求CPU 集成顯卡可以完成 App Designer 開發(fā)必要工具箱如需要調用 Simulink 模型需安裝 Simulink如需要打包成 exe需 MATLAB Compiler像素設置Windows 系統(tǒng)如發(fā)現(xiàn)界面模糊需調整縮放設置以適配高分屏檢查當前 MATLAB 是否包含 App Designer可以在 MATLAB 命令窗口輸入% 檢查是否有 App Designer 工具箱 ver % 或在命令行打開 App Designer appdesigner如果appdesigner命令能正常打開設計畫布說明環(huán)境可用。如果提示未找到命令大概率是 MATLAB 安裝不完整或安裝時未選中 App Designer 組件需要重新運行安裝程序添加組件。4. 快速搭建 APP從新建工程到第一個界面下面以一個“信號生成與濾波演示器”為例完整走一遍。這個 APP 的功能是用戶輸入采樣頻率、信號頻率、濾波器截止頻率點擊“生成信號”按鈕在坐標區(qū)顯示原始波形點擊“濾波”按鈕顯示濾波后波形。整個過程 4 分鐘左右可以完成基礎版本。4.1 新建 App 文件在 MATLAB 命令窗口輸入appdesigner點擊“新建”按鈕選擇“空白應用”進入設計畫布。左側組件庫有標簽、按鈕、編輯字段、坐標區(qū)、儀表盤、下拉列表等右側“組件庫”下方是“屬性查看器”底部是“代碼視圖”與“設計視圖”切換按鈕。4.2 拖拽設計界面需要拖入的組件如下一個“坐標區(qū)”組件用于顯示信號波形重命名為WaveAxes三個“數(shù)值編輯字段”組件分別用于輸入采樣頻率、信號頻率、截止頻率重命名為FsEdit、SigFreqEdit、FcEdit兩個“按鈕”組件一個顯示“生成信號”一個顯示“濾波”重命名為GenButton、FilterButton四個“標簽”組件用于說明對應輸入框含義文本分別設置為“采樣頻率(Hz)”“信號頻率(Hz)”“截止頻率(Hz)”“濾波結果”調整布局時選中組件后可以直接拖動也可以使用設計畫布頂部對齊工具。建議將輸入組件放在左側一列坐標區(qū)放在右側占主要區(qū)域按鈕放在輸入列下方。4.3 修改組件屬性雙擊組件選中后在右側屬性窗口修改坐標區(qū)WaveAxes的 XLabel 設置為“時間(s)”YLabel 設置為“幅值”數(shù)值編輯字段FsEdit默認值設置為 1000SigFreqEdit默認值設置為 10FcEdit默認值設置為 50生成按鈕GenButton的 ButtonPushedFcn 會由 MATLAB 自動生成回調骨架修改屬性后切換到代碼視圖可以看到 MATLAB 已自動生成 App 初始化代碼和組件定義。核心邏輯只需在回調函數(shù)里補充。4.4 編寫回調函數(shù)在代碼視圖左側的“代碼瀏覽器”中雙擊GenButtonButtonPushed編寫“生成信號”邏輯% 生成信號按鈕回調 function GenButtonPushed(app, event) Fs app.FsEdit.Value; % 讀取采樣頻率 f app.SigFreqEdit.Value; % 讀取信號頻率 t 0:1/Fs:1-1/Fs; % 時間序列 app.signalData sin(2*pi*f*t) 0.3*randn(size(t)); % 含噪聲信號 plot(app.WaveAxes, t, app.signalData); app.WaveAxes.XLabel.String 時間(s); app.WaveAxes.YLabel.String 幅值; title(app.WaveAxes, 原始信號); end再雙擊FilterButtonButtonPushed編寫濾波邏輯% 濾波按鈕回調 function FilterButtonPushed(app, event) if isempty(app.signalData) uialert(app, 請先生成信號, 提示); return; end Fs app.FsEdit.Value; % 采樣頻率 fc app.FcEdit.Value; % 截止頻率 [b, a] butter(4, fc/(Fs/2), low); filteredData filtfilt(b, a, app.signalData); t 0:1/Fs:1-1/Fs; hold(app.WaveAxes, on); plot(app.WaveAxes, t, filteredData, r, LineWidth, 1.5); hold(app.WaveAxes, off); legend(app.WaveAxes, {原始信號, 濾波信號}); end創(chuàng)建完回調后在 App 的 properties 部分聲明一個公共數(shù)據(jù)字段signalDataproperties (Access public) signalData [] % 存放原始信號數(shù)據(jù) end點擊“運行”按鈕就能看到界面彈出輸入?yún)?shù)后點擊按鈕坐標區(qū)會實時顯示波形。這套流程對整個信號處理、圖像處理類工具具有通用性讀輸入、做計算、畫結果三行邏輯搞定一個核心功能。5. 在 App Designer 中調用 Simulink 模型網(wǎng)上的高頻需求是“Simulink 模型調用及仿真結果顯示在 GUI 界面上”。App Designer 可以實現(xiàn)這個效果核心思路是用sim命令在回調函數(shù)里運行 Simulink 模型然后把仿真結果繪制到 App 的坐標區(qū)組件上。5.1 準備 Simulink 模型先在 Simulink 中搭一個簡單模型例如一階低通濾波系統(tǒng)LowPassFilter.slx輸入端為Sine Wave輸出端使用Out1模塊。模型保存到 MATLAB 當前路徑下確保工作區(qū)能識別到模型名。5.2 在 App Designer 中調用在 App 界面添加一個按鈕“運行仿真”雙擊回調寫入% 運行 Simulink 仿真按鈕回調 function SimButtonPushed(app, event) Fs app.FsEdit.Value; f app.SigFreqEdit.Value; % 設置模型參數(shù) mdl LowPassFilter; load_system(mdl); set_param([mdl /Sine Wave], Frequency, num2str(f)); set_param([mdl /Sine Wave], SampleTime, num2str(1/Fs)); % 運行仿真 simOut sim(mdl, StopTime, 1); % 從輸出中讀取數(shù)據(jù) y simOut.yout.getElement(1).Values.Data; t simOut.yout.getElement(1).Values.Time; % 繪制到 App 界面 plot(app.WaveAxes, t, y); app.WaveAxes.XLabel.String 時間(s); app.WaveAxes.YLabel.String 幅值; title(app.WaveAxes, Simulink 仿真結果); end關鍵點有兩個。第一set_param可以通過參數(shù)名動態(tài)修改 Simulink 模塊參數(shù)前端輸入值傳入模型第二simOut輸出對象中可以用yout或logsout獲取仿真數(shù)據(jù)再用plot繪制到 App 組件的坐標區(qū)中。這樣Simulink 模型“算”的部分和 App Designer“看”的部分就完成了解耦。對于更復雜的模型推薦在 Simulink 模型根部使用“輸出端口”模塊并在模型配置參數(shù)中勾選輸出記錄確保仿真數(shù)據(jù)能傳到工作區(qū)。回調函數(shù)中建議先load_system再sim避免重復打開模型界面仿真完成后調用close_system(mdl, 0)釋放資源。6. 軟件著作權申請材料整理與流程要點用 MATLAB App Designer 完成 APP 開發(fā)后如果想把軟件作為科研成果或產品形態(tài)進行保護可以申請軟件著作權。很多工程師忽略了“材料規(guī)范化”這一步導致提交后補正?,F(xiàn)在在開發(fā)階段就從源碼、文檔、運行證明三方面做準備。6.1 軟著申請需要的材料常規(guī)軟著申請需要準備軟件著作權登記申請表在線填寫后生成源代碼文檔一般要求提交前、后各連續(xù) 30 頁每頁不少于 50 行總行數(shù)不足 60 頁則全部提交用戶操作手冊或設計說明書需要包含軟件功能、操作步驟、運行環(huán)境、界面截圖、安裝及卸載說明軟件功能演示材料部分場景要求提供運行界面截圖身份證明文件個人申請為身份證單位申請為營業(yè)執(zhí)照副本復印件6.2 從 App Designer 項目提取源代碼App Designer 的代碼不能直接從 .mlapp 文件里復制到 Word需要按規(guī)范導出。在 MATLAB 命令窗口執(zhí)行% 打開 mlapp 文件獲取源代碼 appFile myApp.mlapp; % 可以用 matlab.apputil 相關工具檢查也可以直接在 App Designer 中查看代碼視圖 % 需要把代碼視圖中的完整代碼復制到文本編輯器更規(guī)范的做法是在 App Designer 中打開工程點擊“代碼視圖”全選并復制全部代碼保存為 .m 文件或寫入文檔。如果希望長期維護建議直接使用 App Designer 的“保存”功能將 .mlapp 文件和 .m 文件保持同目錄維護其中 .m 文件是純文本格式可用于版本管理和軟著材料排版。軟著源代碼文檔不僅要包含回調代碼還要包含 App 初始化代碼、組件創(chuàng)建函數(shù)、屬性定義。建議用 MATLAB 的publish功能將代碼導出為格式化的 HTML 或 PDFpublish(myApp.m, format, html);這樣導出的代碼帶語法高亮比直接從編輯器復制更正式。6.3 用戶操作手冊的撰寫結構操作手冊不需要長篇大論但要覆蓋審查員關心的信息軟件概述軟件名稱、版本號、開發(fā)工具MATLAB R2022b, App Designer、運行環(huán)境安裝步驟需要哪些 MATLAB 運行時組件、安裝包路徑、默認安裝目錄功能說明主界面截圖、每個按鈕和輸入框的作用操作流程從啟動到完成一次完整處理的步驟配截圖常見異常及處理啟動失敗、按鈕無響應、仿真時間過長、輸入非法參數(shù)等操作手冊配圖時需要在干凈的桌面上運行軟件截圖內容不能帶內部保密信息或無關個人信息。6.4 軟著申請流程簡要時間線常規(guī)登記流程為在中國版權保護中心官網(wǎng)注冊賬號在線填寫申請表提交源代碼文檔和操作手冊等待受理、補正如有、審查最終獲得軟件著作權登記證書。正常流程多為受理后 30 到 60 個工作日若有補正時間會相應延長。提前把材料按官方要求排版能明顯縮短周期。7. 功能測試與效果驗證APP 開發(fā)完成后不能只點兩下“運行”就算結束。建議按下面的測試維度走一遍確認邏輯正確也方便把測試記錄整理成軟著材料中的驗證部分。7.1 基礎交互測試測試目標確認按鈕、輸入框、坐標區(qū)能正常響應。操作步驟運行 APP依次在各個數(shù)值編輯字段輸入合法參數(shù)點擊按鈕觀察波形是否更新。預期結果輸入合法參數(shù)時坐標區(qū)正確顯示曲線輸入空值或非數(shù)值內容時程序給出提示而不是直接崩潰。常見失敗原因回調函數(shù)事件參數(shù)寫錯、組件名稱拼錯、讀取的Value類型為 char 而未轉換。7.2 邊界輸入測試測試目標確認 APP 在輸入 0 或負數(shù)、極大值時不會卡死。操作步驟輸入Fs0、f-5、fc10000分別測試。預期結果代碼應加入校驗邏輯例如if app.FsEdit.Value 0 || app.SigFreqEdit.Value 0 uialert(app, 頻率參數(shù)必須為正數(shù), 參數(shù)錯誤); return; end邊界輸入處理是軟著測試報告中常被檢查的項目之一建議在開發(fā)階段就補全參數(shù)校驗。7.3 Simulink 模型聯(lián)動測試測試目標確認 Simulink 模型能夠被 APP 調用仿真結果能在界面顯示。操作步驟點擊“運行仿真”按鈕觀察模型是否在后臺運行、結果是否繪制到坐標區(qū)。預期結果多次點擊時坐標區(qū)不斷更新且不疊加殘留舊曲線Simulink 模型運行結束后系統(tǒng)進程被釋放。常見失敗原因模型文件不在搜索路徑、模型名拼寫錯誤、set_param參數(shù)名與模型實際名稱不匹配。7.4 打包后運行測試如果后續(xù)需要把 APP 發(fā)布給別人使用需要測試打包后的運行效果。操作步驟在 App 工具條中點擊“共享”-“獨立桌面應用”按 MATLAB Compiler 向導打包為 exe。然后在一臺未安裝 MATLAB 但安裝了 MATLAB Runtime 的電腦上運行測試。預期結果APP 可以啟動功能與開發(fā)環(huán)境一致生成的數(shù)值結果和圖像顯示正確。需要特別注意的是打包后程序讀取路徑可能與開發(fā)環(huán)境不同。所有模型文件、數(shù)據(jù)文件應使用相對路徑或由用戶手動選擇路徑避免硬編碼C:\Users\...這種絕對路徑。8. 打包發(fā)布與分享給他人App Designer 提供兩種分享方式第一種是直接把 .mlapp 文件發(fā)給仍裝有 MATLAB 的同事雙擊即可打開第二種是打包為獨立桌面應用對方不需要安裝 MATLAB只需安裝 MATLAB Runtime。打包為獨立應用的步驟如下在 App Designer 工具條點擊“共享”選擇“獨立桌面應用”進入 MATLAB Compiler 向導。選擇主文件為當前 .mlapp 文件添加依賴的 Simulink 模型和用戶手冊點擊“打包”。編譯完成后會在輸出文件夾中生成for_testing、for_redistribution等子目錄。for_redistribution下的安裝包包含程序及 Runtime 安裝引導程序適合發(fā)給終端用戶。安裝時終端用戶需要接受 MATLAB Runtime 的許可協(xié)議安裝完成后桌面會出現(xiàn)應用快捷方式啟動時間通常比開發(fā)環(huán)境內運行略長屬于正常現(xiàn)象。如果目標用戶機器上沒有管理員權限可以考慮把for_testing目錄下的文件復制給對方并在對方機器上手動安裝對應版本的 MATLAB Runtime。注意 MATLAB Runtime 版本必須和編譯時所用 MATLAB 版本一致否則啟動時會提示“無法找到指定版本的 MATLAB Runtime”。打包完成后應對生成的可執(zhí)行程序重新做一次功能測試因為編譯后的程序在工作目錄、路徑解析、工具箱依賴方面可能與開發(fā)環(huán)境存在差異。特別是調用 Simulink 模型的應用打包時需要將模型文件包含進依賴列表否則在目標機器上會找不到模型。9. 資源占用與性能觀察App Designer 開發(fā)的應用在開發(fā)環(huán)境內運行時性能主要損耗在 MATLAB 主進程本身。啟動一個空白的 App Designer 應用內存占用通常由 MATLAB 底層的 JIT 解釋器和界面渲染框架決定。一般來說簡單 APP 在開發(fā)環(huán)境內運行占用內存較高屬于正常現(xiàn)象打包為獨立 exe 后程序運行在 MATLAB Runtime 中占用相對可控。界面交互的卡頓主要體現(xiàn)在回調函數(shù)中執(zhí)行密集計算或實時繪圖時刷新頻率過高。優(yōu)化建議是大量數(shù)據(jù)繪圖時先對數(shù)據(jù)做降采樣循環(huán)中避免頻繁調用plot可以先生成animatedline對象后更新數(shù)據(jù)如果回調中需要處理幾百萬點數(shù)據(jù)增加進度條控件減少用戶等待焦慮。Simulink 仿真與 App Designer 聯(lián)動時如果模型本身計算量較大App 界面會在仿真期間暫時無法響應因為sim命令是同步阻塞調用。解決方法是使用parsim并行仿真或在回調中用timer以異步方式觸發(fā)仿真。同步調用簡單穩(wěn)定適合對實時性要求不高的場景。磁盤空間方面開發(fā)環(huán)境需要 MATLAB 安裝空間約 25-35GBSimulink 和編譯器各占額外空間。打包生成的安裝包大小取決于涉及的工具箱和模型文件通常在幾百 MB 到幾 GB 之間需提前和對方確認磁盤空間。10. 常見問題與排查方法問題現(xiàn)象可能原因排查方式解決方案命令窗口輸入 appdesigner 無反應MATLAB 安裝不完整或 App Designer 組件未安裝輸入ver查看已安裝工具箱重新運行安裝程序勾選 App Designer 組件控件在布局中重疊或自動調整混亂App Designer 自動布局設置了固定位置檢查組件約束屬性重新設置水平和垂直布局約束回調函數(shù)不執(zhí)行回調函數(shù)名與組件事件不匹配組件名稱拼寫錯誤在代碼視圖中斷點調試刪除回調后重新雙擊生成新的回調骨架坐標區(qū)不顯示波形數(shù)據(jù)變量未傳給plot坐標區(qū)對象名錯誤在回調中加disp(size(t))檢查數(shù)據(jù)確保plot(app.坐標區(qū)名, ...)使用正確組件對象Simulink 模型找不到或打不開模型文件不在當前路徑模型名錯誤模型版本不兼容在命令窗口執(zhí)行which 模型名.slx將模型加入 MATLAB 路徑檢查文件擴展名打包后程序提示缺少運行時組件目標機器沒有安裝對應版本的 MATLAB Runtime查看編譯時的 Runtime 版本安裝相同版本的 MATLAB Runtime或讓用戶運行安裝包自動引導打包后程序讀取不到數(shù)據(jù)文件開發(fā)時使用了絕對路徑檢查源碼中路徑加載邏輯改用uigetfile或相對路徑輸入框輸入小數(shù)時程序報錯數(shù)值編輯字段的 Value 類型被當作 char 處理用class(app.FsEdit.Value)檢查類型使用str2double轉換或確認使用數(shù)值編輯字段而不是文本字段運行仿真時界面卡死sim同步調用阻塞主線程觀察仿真是否在后臺繼續(xù)運行改用parsim或timer異步調用界面在高分辨率屏幕上顯示模糊MATLAB 版本對高分屏縮放支持不完善查看 MATLAB 版本調整 MATLAB 兼容性設置或升級版本11. 最佳實踐與合規(guī)建議從項目一開始就按“可交付、可申請軟著”的標準來寫代碼后面能少走很多彎路。建議建立如下工程目錄結構項目根目錄/ ├── app/ % .mlapp 和 .m 文件 ├── models/ % Simulink 模型 ├── docs/ % 操作手冊、開發(fā)文檔 ├── resources/ % 圖標、說明圖片 ├── test/ % 測試用例腳本 └── release/ % 打包輸出代碼規(guī)范上回調函數(shù)中盡量只保留界面響應邏輯把計算部分單獨抽成函數(shù)文件。例如生成信號、濾波計算、Simulink 仿真分別寫成genSignal.m、doFilter.m、runSimulinkModel.mApp 回調中只負責讀取控件值、調用公共函數(shù)、更新坐標區(qū)。這樣便于單元測試和軟著源代碼文檔中每個源文件獨立展示也便于后續(xù)維護。軟著材料準備建議分三步走。第一步在開發(fā)完成后使用publish將主要代碼導成格式化文檔第二步編寫操作手冊包含界面截圖和典型操作流程第三步在線填寫申請表時軟件名稱、版本號保持與代碼一致。申請材料中涉及個人信息、項目編號、內部路徑等信息時應脫敏處理。合規(guī)方面要特別注意使用 MATLAB 及工具箱時確認授權范圍不得使用非法激活工具或破解版本若開發(fā)過程中參考了他人代碼或工具箱需要確認來源可商用并在文檔中做必要聲明需要調用系統(tǒng)硬件、網(wǎng)絡服務或第三方接口時必須在 APP 內提示用戶授權涉及人像、語音、證件、企業(yè)核心數(shù)據(jù)等敏感信息時開發(fā)調試階段應使用脫敏數(shù)據(jù)不能直接拿生產數(shù)據(jù)做界面截圖使用 App Designer 開發(fā)的軟件如果做商業(yè)發(fā)布要重點確認 MATLAB Compiler 的部署許可范圍有的工具箱限制運行時轉發(fā)測試過程中建議保留一份完整的測試記錄包括測試日期、MATLAB 版本、操作系統(tǒng)、測試參數(shù)、預期結果、實際結果和截圖。這份記錄既可以作為軟著申請中的“軟件測試證明”素材也可以在日后版本升級時做回歸比對。12. 總結與下一步Matlab App Designer 最大的價值是壓縮了“從算法到界面”的轉換成本。不需要單獨學 Qt、不會前端也能在幾十分鐘內做出一個可交互、可調參、可展示的桌面工具配合 Simulink 模型調用能把仿真結果直接呈現(xiàn)在前端適合教學演示和項目匯報。如果涉及軟件著作權申請開發(fā)階段按代碼、文檔、測試記錄三條線管理提交材料時只需要整理排版不需要補做工作。建議先從一個小需求開始比如做一個“信號顯示與簡單濾波”工具走完拖拽控件、寫回調、調用 Simulink、打包分發(fā)這一整套流程。最容易踩的坑是組件名拼寫和回調函數(shù)沒有用正規(guī)方式生成第二個坑是 Simulink 模型路徑不匹配導致調用失敗第三個坑是打包后絕對路徑失效。這三個坑在開發(fā)期就可以通過規(guī)范工程目錄和統(tǒng)一路徑讀取方式規(guī)避。下一步可以考慮給 APP 增加數(shù)據(jù)導入導出功能例如用uigetfile讀取 Excel 數(shù)據(jù)用writetable導出結果再考慮增加報告生成功能比如自動把仿真結果生成 PDF。熟練之后還可以研究使用matlab.apputil打包成 MATLAB App 安裝包發(fā)給同組同事直接在 MATLAB 中安裝使用。建議先收藏這篇文章等到實際開發(fā) App Designer 或準備軟著材料時再打開按照步驟走一遍。