1. 程式人生 > >matlab GUI學習筆記

matlab GUI學習筆記

5月9日

初學者視訊7中在開啟txt檔案時出現了問題

 
??? Improper assignment with rectangular empty matrix.


Error in ==> chengjichaxun>chengjichaxun_OpeningFcn at 69
    chengji(counter-1,:)= [yuwen shuxue yingyu];


Error in ==> gui_mainfcn at 221
    feval(gui_State.gui_OpeningFcn, gui_hFigure, [],
    guidata(gui_hFigure), varargin{:});


Error in ==> chengjichaxun at 42
    gui_mainfcn(gui_State, varargin{:});

後來發現txt檔案中空格變成了tab鍵,導致了錯誤,改為正常空格後成功

另外errordlg函式與msgbox函式區別為前者彈出的框裡面帶有小紅叉

5月10日

將GUI使用mcc命令編譯為可執行檔案後,可在有matlab的機器上直接執行,編譯產生的.prj檔案不可以刪去。

若想在沒有matlab的機器上執行,則必須下載matlab函式庫,版本必須與建立GUI的版本一樣。若還有問題可能是電腦path的問題,將matlab library的path放在其中

使用deploytool新增.m檔案盒figure檔案,build  package生成windows下的程式

5月15日

rng default這個語句在高版本中才有,現在暫時不知道什麼意思

5月16日

AB2([2,3,5,6],:)=[ ] %意思為刪除第2356

AB2(:,1:3)=[ ] % 意思為刪除第1到3列

%必須要有後面的=[ ]。沒有的話表示的只是去除相應的元素

meshgrid 的使用方法:

[X,Y] = meshgrid(x,y) 將向量x和y定義的區域轉換成矩陣X和Y,這兩個矩陣可以用來表示mesh和surf的三維空間點以及兩個變數的賦值。其中矩陣X的行向量是向量x的簡單複製,而矩陣Y的列向量是向量y的簡單複製。

5月19日

建立字串陣列幾個問題,直接建立多行一定要每行長度相等,另外非等長串陣列藉助char , str2mat , strvcat等指令聲稱多行串陣列,strvcat自動捨棄空的,不會出現空行。

利用胞元建立陣列時,使用大括號

C1={'MATLAB201xaincludesdata types:';

'Double array';

'Character array';

'and so on'}

5月20日

胞元陣列內容的獲取,採用大括號,得到資料型別為胞元內的資料的型別;使用小括號得到資料型別仍然為胞元

5月21日

B1=getfield(A,{1,3},'name',{1:2});

B2=A(1,3).name(1:2);%兩句等效

[Bc1,Bc2]=deal(A(1,3).name(1:2))

Bc1 =

    'ZhaoZhong-xin'    'Mao Li-xiu'

Bc2 =

    'ZhaoZhong-xin'    'Mao Li-xiu'

[Bn1,Bn2]=deal(A(1,3).name{1:2})

[Bm1,Bm2]=A(1,3).name{1:2}%兩句等效,與上面的區別是大括號,執行結果如下

Bm1 =

Zhao Zhong-xin

Bm2 =

Mao Li-xiu


for語句後面一定要加end才會結束,並執行迴圈中的內容,否則就停在那裡了

5月22日

M = mean(A)%當A為矩陣的時候,返回的是每列的平均值組成的向量

M = mean(A,dim)%按dim維計算平均值,然後返回

@(x)mean(mean(x))%表示自變數為x,計算的是矩陣x的每列列向量的平均值構成的行向量的平均值

5月29日

nargout %matlab函式中的輸出量的個數

nargout %輸入量的個數

1、varargout與nargout區別
varargout簡介:
varargout可以看做“Variable length output argument list”(可變長度輸出引數列表)的縮寫。在matlab中定義m函式時通過varargout我們可以得到可變的數個返回值。是一個胞元陣列
用法:function varargout = foo(n)。
nargout簡介:
在matlab中定義一個函式時, 在函式體內部, nargout指出了輸出引數的個數。特別是在利用了可變引數列表的函式中, 用nargout獲取輸出引數個數很方便。
用法:
n = nargout
    n= nargout(fun)
2、varargin與nargin的區別 varargin簡介: varargin可以看做“Variable length input argument list”的縮寫。在matlab中, varargin提供了一種函式可變引數列表機制。 就是說,使用了“可變引數列表機制”的函式允許呼叫者呼叫該函式時根據需要來改變輸入引數的個數。是一個胞元陣列 用法:function y = bar(varargin)。 nargin簡介: 在matlab中定義一個函式時, 在函式體內部, nargin指出了輸入引數的個數。 特便是在利用了可變引數列表的函式中, 用nargin獲取輸入引數個數很方便。     用法:     n = nargin     n = nargin(fun)