最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

matlab appdesigner的簡單介紹及其表格功能的代碼分享

2023-07-04 22:23 作者:清歌的辣條  | 我要投稿

????今天分享一下如何在matlab appdesigner中創(chuàng)建表格并編寫代碼實(shí)現(xiàn)常用的功能,希望能幫助大家快速上手matlab appdesigner。使用appdesigner的起因是我做一個長期項(xiàng)目的時候,想著自己畢業(yè)了留給師弟,讓他們零代碼基礎(chǔ)也能立刻接手,不過寫完了發(fā)現(xiàn)還是有功能實(shí)現(xiàn)不了(悲),表格功能的實(shí)現(xiàn)前期參考來自https://www.52txr.cn/2021/matlab_table.html,后面參考的都是官方文檔了。

????首先簡單解釋一下appdesigner的基本概念,appdesigner分為設(shè)計視圖和代碼視圖,向設(shè)計視圖中拖入各種組件來設(shè)計軟件的外部界面,而在代碼視圖添加回調(diào)、函數(shù)、屬性等實(shí)現(xiàn)軟件的內(nèi)置功能。

????回調(diào):軟件對使用者在界面上的操作(如鼠標(biāo)點(diǎn)擊等)返回的響應(yīng),一次操作可以有多種響應(yīng)且響應(yīng)總是在操作之后。

????函數(shù):內(nèi)置在軟件中的功能函數(shù),對應(yīng)matlab的自定義函數(shù)。

????屬性:可以理解為C語言的全局變量,定義在代碼視圖的開頭部分,可以在各個回調(diào)中保持一致;而在回調(diào)中定義的變量則均為局部變量,在各個回調(diào)中是不同的。這意味著在不同回調(diào)中可以定義相同名稱的局部變量而互不影響(不推薦)。在這里,我先定義屬性t用于接下來暫時存放表格中的數(shù)據(jù)。

????好啦,知道以上這些,就可以開始編寫屬于自己的小軟件啦?。ó?dāng)然本文只介紹表格的不同功能和實(shí)現(xiàn):)

????1.從組件庫中拖動表格到設(shè)計視圖中,拖入后,代碼視圖中會自動生成表格相關(guān)的定義代碼。點(diǎn)擊表格,可以在右側(cè)編輯表格的外觀,當(dāng)然也在代碼視圖中使用代碼進(jìn)行編輯。本文設(shè)計的表格功能是導(dǎo)入坐標(biāo)點(diǎn)壓力值并顯示云圖,所以修改ColumnName中的值為xyz坐標(biāo)和壓力。

1.創(chuàng)建表格

????2.接下來拖入需要的按鈕組件并重命名,為了提升代碼的可讀性,可以在組件瀏覽器中修改組件的變量名。

2.重命名 3.添加回調(diào)

????3.右擊設(shè)計視圖中的按鈕、表格或視圖瀏覽器中的變量名添加不同回調(diào)來實(shí)現(xiàn)響應(yīng)的功能。代碼如下:

保存按鈕回調(diào)

[importfile, importpath] = uigetfile({'*.xlsx';'*.xls';'*.csv';'*.*'},'導(dǎo)入數(shù)據(jù)');

if importfile~=0 ? ? ? ?

? excelfull = strcat(importpath,importfile);

? temptable= readmatrix(excelfull);%臨時變量temptable存放原始數(shù)據(jù)

? app.t(:,1)=temptable(:,2);%賦值給屬性t

? app.t(:,2)=temptable(:,3);

? app.t(:,3)=temptable(:,4);

? app.t(:,4)=temptable(:,1);

? app.exptable.Data=app.t;%賦值給表格

end

導(dǎo)出按鈕回調(diào)

[exportfile,exportpath]=uiputfile({'*.xlsx';'*.xls';'*.*'},'導(dǎo)出數(shù)據(jù)');

if exportfile~=0

? ?excelfull=strcat(exportpath,exportfile);

? ?A1D1=["坐標(biāo)x(m)","坐標(biāo)y(m)","坐標(biāo)z(m)","壓力(pa)"];

? ?writematrix(A1D1,excelfull,"Range",'A1:D1');

? ?writematrix(app.exptable.Data,excelfull,"Range",'A2');

end

%若保存csv格式,則writematrix不適用

添加一行數(shù)據(jù)按鈕回調(diào)

nr=table('Size',[1,4],'VariableTypes',{'double','double','double','double'});

app.exptable.Data=[app.exptable.Data;nr]; ? ?

app.t=app.exptable.Data; ?

刪除一行數(shù)據(jù)回調(diào)

????在創(chuàng)建該回調(diào)之前,需要創(chuàng)建一個cellselection回調(diào),用于返回鼠標(biāo)點(diǎn)擊的表格所在行列數(shù),若未點(diǎn)擊任意一行,則刪除最底下一行;為了其他回調(diào)能調(diào)用該回調(diào)返回的輸出,需要創(chuàng)建3個屬性:mouse_ind、mouse_ind2、tf,分別存放行數(shù)、列數(shù)和“選擇命令”的邏輯數(shù)。

cellselection回調(diào)代碼如下:

indices = event.Indices;

app.tf=isempty(indices);

if app.tf==0

? ?app.mouse_ind=indices(1);

? ?app.mouse_ind2=indices(2);

end

????在得到鼠標(biāo)信息后,就能夠?qū)崿F(xiàn)刪除選定行數(shù)的功能了,代碼如下:

[rownum,~]=size(app.exptable.Data);

if rownum>0

? ?if app.mouse_ind~=0 ? ? ? ? ? ? ?

? ? ? ?app.exptable.Data(app.mouse_ind,:)=[];

? ? ? ?app.t=app.exptable.Data;

? ? ? ?app.mouse_ind=0;

? ?else

? ? ? ?app.exptable.Data(rownum,:)=[];

? ?end

end

編輯表格數(shù)據(jù)回調(diào)? ??

4.勾選表格可編輯

????為了能夠編輯表格數(shù)據(jù),需要把表格列值可編輯先勾選上,然后添加Celledit回調(diào),代碼如下:

indices = event.Indices;

newdata=event.NewData;

app.exptable.Data{indices(1),indices(2)}=newdata;

app.t=app.exptable.Data;

最后對繪圖按鈕添加ButtonPushed回調(diào),加入繪制云圖功能,這個小app的代碼部分就完成啦。

5.繪圖


matlab appdesigner的簡單介紹及其表格功能的代碼分享的評論 (共 條)

分享到微博請遵守國家法律
兴化市| 克拉玛依市| 龙泉市| 白沙| 渭源县| 墨竹工卡县| 泰顺县| 古田县| 温州市| 大安市| 巴中市| 蕲春县| 龙游县| 津南区| 牟定县| 从化市| 武平县| 定兴县| 吴旗县| 湘潭县| 沈阳市| 龙陵县| 汝阳县| 广灵县| 惠水县| 怀远县| 昌黎县| 张家界市| 平陆县| 德阳市| 扎鲁特旗| 绵竹市| 都江堰市| 鸡东县| 宝丰县| 博乐市| 东乡县| 河北省| 宣城市| 重庆市| 昌平区|