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],:)=[ ] %意思為刪除第2、3、5、6行
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)