2016-11-13 88 views
0

我寫了一些用於天線設計的Matlab代碼,現在我想爲這個項目製作一個用戶友好的GUI,以便其他人也可以輕鬆使用它。一個獨立的MATLAB GUI應用程序的最小例子

之前我移動到實際的GUI開發,我想獲得的Matlab的是否是一個基於GUI的應用的理想選擇,在

方面的整體印象

一)是否容易/簡單的創建,
b)用戶是否有可能在沒有Matlab許可證/安裝的情況下使用產生的應用程序。

請有人可以提供最小MATLAB GUI例如展示MATLAB圖形用戶界面的基本概念,我得到的所涉及的想法,並指出我在正確的方向上我怎麼可能部署此作爲獨立的matlab應用程序,如果這是可能的?


可選 - (根據意見,覺得免費的,如果你感到強烈的#2「意見」忽略):我還想了解它是否是一般的好選擇相對於其他典型的選項任何解釋性意見,或者如果人們會建議我爲了GUI應用程序的特定目的而從matlab遷移到另一種語言(以及爲什麼)。

回答

5

Matlab(在我看來)是設計圖形用戶界面最簡單的語言之一,因爲所有你需要做的就是將ui元素添加到普通的數字窗口中並作爲回調鏈接到標準函數。還有一個圖形工具可以創建這些工具,名爲GUIDE,但我從來沒有打擾過它,因爲首先用手編寫它非常簡單。

下面是一個簡單的「應用程序」繪出螺旋形,以控制其規模的滑塊控制:

%%%%%% In file myplot.m %%%%% 
function myplot 

    %% Create initial figure and spiral plot 
    figure; axes ('position', [0.1, 0.3, 0.8, 0.6]); 
    t = linspace (0, 8*pi, 100); x = t .* cos(t); y = t .* sin(t); 
    plot (x, y); axis ([-100, 100, -100, 100]); 

    %% Add ui 'slider' element  
    hslider = uicontrol (     ... 
     'style', 'slider',    ... 
     'Units', 'normalized',   ... 
     'position', [0.1, 0.1, 0.8, 0.1], ... 
     'min', 1,       ... 
     'max', 50,      ... 
     'value', 10,      ... 
     'callback', {@plotstuff}   ... 
     ); 

    %% Callback function called by slider event 
    function plotstuff (h, event) 
    n = get (h, 'value'); 
    x = n * t .* cos(t); y = n * t .* sin(t); 
    plot (x, y); axis ([-100, 100, -100, 100]); 
    end 
end 

enter image description here

關於你提到的第二個問題,有的方式來創建獨立應用程序沒有安裝matlab的用戶,但需要注意的是,您需要將Matlab Compiler工具箱打包爲獨立的a pp和

b)您的最終用戶將不得不安裝Matlab Compiler Runtime以便代碼運行。 (類似於您需要安裝Java運行時才能運行Java代碼)。

如果上述兩者都不是你的代言人,那麼是的,matlab是你的gui應用程序的一個合適和直接的選擇。


PS1:有用的鏈接:https://uk.mathworks.com/discovery/matlab-gui.html
PS2:八度稍落後於MATLAB的GUI功能,你應該避免嵌套函數回調,但否則其全新的Qt界面已經與一些UI元素的功能了。所以對於簡單的吉他,倍頻應該也很好,而且值得一試(也是免費的,開放的,更容易部署的,在我看來也是如此)。

0

沒有。即使開發一個簡單的GUI是一個拖放小部件,然後在代碼中編織的問題,但這並不值得。第一個MATLAB是封閉源代碼,第二個,它需要任何其他用戶先下載MATLAB,然後使用你的腳本。

如果你只想爲自己做,或者這是你第一次嘗試在GUI上繼續前進。

編輯:正如rayryeng指出的那樣,您還可以將MATLAB作爲庫嵌入到C/C++程序中。然而,像GTK這樣的更好的庫在控件和可移植性方面更加豐富。

+2

雖然您的觀點是有效的,但如果您希望運行這些應用程序,則可以將MATLAB應用程序部署到本地C或C++,而不需要MATLAB運行系統。我建議你改變你的答案以反映這一點,因爲它不完全準確:https://www.mathworks.com/products/matlab-coder/ – rayryeng