matlab-GUI矩阵计算器..

合集下载

基于matlab的计算器制作

基于matlab的计算器制作

基于MATLAB的计算器制作从入门到高级项目一、建立GUI框架1,双击MATLAB图标(本实例使用的是MATLAB R2014),打开软件2,打开GUI操作界面。

有两种方式:a、在命令行窗口输入guide,然后点击回车。

b、先点击新建图标,在选择‘图形用户界面’。

得到如下窗口:左上方有两个按钮:‘新建GUI’,‘打开现有GUI’。

对于‘新建GUI’:下方的选择框内有你可以选择建立的GUI类型,对于初学者一般选择第一个。

下方是用来设置保存文件位置的。

对于‘打开现有GUI’:初学者可能会在网上下载一些GUI源程序,使用‘打开现有GUI’,再浏览到文件所在位置便可。

3、构建GUI框架:在选择新建GUI并且确定后,会弹出如下窗口:在窗口的左边会有很多选项,可以一个个拖动编辑框内;是不是发现这些选项发挥的作用刚好就是我们平常打开一个网页或者一个软件进行操作时的选择按钮。

比较常见的有:按钮、单选按钮、拖动条、弹出式菜单等。

看到这里细心地朋友就会发现,MATLAB GUI似乎可以开发出大型软件哦,只要你有足够的想象力,当你从一个小白进阶到一个高手之后,你可以做到的。

本次计算器制作只需要用到静态文本(或者是动态文本)用来做显示器,按钮(用来操作)。

也可以添加一个面板用来修饰。

在拖出的选项上双击,会得出该选项的属性栏,比如说双击一个按钮选项,你会得到:这个属性框比较复杂,没有必要一个个说清楚(有兴趣的可以自己研究,其实理解起来也挺简单的)本次计算器制作,我们只需要知道以下几个:◆a、BackgroundColor取值为颜色的预定义字符或RGB数值;缺省(就是默认的意思)值为浅灰色;◆b、ForegroundColor取值为颜色的预定义字符或RGB数值,该属性定义控件对象标题字符的颜色;缺省值为黑色;◆c、String取值为字符串矩阵或块数组,定义控件对象标题或选项内容;◆d、FontName取值为控件标题等字体的字库名;◆e、FontSize取值为数值,控制字体大小;◆f、Tag取值为字符串,定义了控件的标识值,在任何程序中都可以通过这个标识值控制该控件对象;◆g、Style取值可以是pushbutton(缺省值),radiobutton, checkbox, edit, text, slider,frame, popupmenu 或listbox;项目二、简单加法器的制作1、框架准备‘加法器’:使用静态文本,在 string 处将文本修改为(加法器),在 fontsize可修改字体大小,在BackgroundColor处可修改背景颜色。

(word完整版)用MATLAB GUI设计简单计算器

(word完整版)用MATLAB GUI设计简单计算器

摘要基于MATLAB GUI的计算器设计是利用GUIDE创建图形用户界面进行计算器设计。

设计计算器时,主要是考虑到计算器的易用性、功能的常用程度进行计算器界面与功能的设计。

通过调整控件和文本的布局及颜色,使界面简单大方、布局合理,达到界面友好的效果。

计算器设计时主要利用到get和set两个函数进行各个控件属性值的传递和设置。

计算器实现的功能有:数字0~9和小数点的输入显示,平方、开平方和对数的输入显示。

进行四则运算、正弦计算、余弦计算、正切计算和余切计算,可以求阶乘、求百分数和求倒数。

可以进行括号及变量x与变量y的输入,结合坐标轴编辑框和曲线颜色编辑框实现函数的曲线绘制。

最后运行调试,实现基于MATLAB GUI的计算器的设计。

MATLAB GUI介绍MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。

MATLAB是matrix和laboratory两个词的组合,意为矩阵工厂,主要面对科学计算、可视化以及交互式程设计的高科技计算环境。

MATLAB是将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言的编辑模式,特别是所附带的30多种面向不同领域的工具箱支持,使得它在许多科学领域中成为计算机辅助设计和分析、算法研究和应用开发的基本工具和首选平台。

MATLAB的图形用户界面(Graphical User Interface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。

与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。

MATLAB的图形用户界(GUI)是由光标,窗口,菜单、文字说明等对象构成一个用户界面。

matlab中gui设计计算器原理及设计方案

matlab中gui设计计算器原理及设计方案

matlab中gui设计计算器原理及设计方案在MATLAB中设计GUI(图形用户界面)计算器的基本原理和设计方案如下:基本原理:MATLAB的GUI设计基于事件驱动模型。

这意味着当用户与界面交互(例如,点击按钮或输入文本)时,会触发一个或多个事件。

这些事件会调用相应的回调函数,执行相应的操作。

设计方案:1. 启动MATLAB并创建GUI:打开MATLAB。

使用guide命令启动GUI设计器。

2. 添加GUI组件:在GUI设计器中,添加需要的组件,如按钮(push button)、文本框(edit text)、标签(label)等。

3. 设置组件属性:为每个组件设置必要的属性,例如位置、大小、标签文本等。

4. 编写回调函数:双击每个组件,MATLAB会自动生成一个默认的回调函数。

根据需要修改这些函数,以实现所需的功能。

例如,对于按钮,当用户点击它时,可以编写代码来执行相应的计算。

5. 测试GUI:在设计过程中,经常测试GUI以确保其正常工作。

可以使用simulink中的模拟功能,或直接在MATLAB环境中测试。

6. 保存和运行:保存GUI文件。

在MATLAB命令窗口中输入文件名(不包括扩展名),然后按Enter运行GUI。

7. 调试和优化:根据测试结果,调整回调函数和组件属性,优化GUI的行为和外观。

8. 发布:一旦GUI满足所有需求,可以发布它以供其他人使用。

这通常涉及将GUI打包为一个可执行文件或应用程序包。

9. 维护和更新:随着软件的发展,可能需要定期维护和更新GUI。

这可能涉及添加新功能、修复错误或改进性能。

在整个过程中,熟悉MATLAB的GUI设计和编程技巧是非常重要的。

此外,由于GUI设计可能需要反复的测试和调整,因此耐心和细心也是必不可少的。

matlab ppt课件

matlab ppt课件
算法控制台
使用GUI来控制其他应用程序或软件的功能,例如打开文件、保存数据、调整参数等。
应用程序控制面板
07
matlab在信号处理中的应用
信号的定义与分类
信号是传递或携带信息的物理量,可以是离散的或连续的,单通道或多通道的。
信号处理的含义
信号处理是对信号进行变换、分析和解释的过程,以适应不同的应用需求。
matlab ppt课件
matlab简介matlab基础知识matlab矩阵运算matlab数据分析matlab科学计算matlab图形界面设计matlab在信号处理中的应用
contents
目录
01
matlab简介
MATLAB诞生于美国,作为方便易用的科学计算工具,它被引入到数值计算领域。
1980年代初期
02
matlab基础知识
01
在MATLAB中,用户可以通过命令行输入命令,进行计算、绘图等操作。
命令行交互
02
用户可以通过编写脚本文件,保存一组相关的命令,以供多次使用。
脚本文件
03
用户可以编写函数文件,实现特定功能的代码块,并在命令行或脚本文件中调用。
函数文件
单元数组
单元数组是一种灵活的数据类型,可以包用于设置组件的激活状态,例如使按钮可点击或不可点击。
通过编写回调函数,可以定义当用户与组件交互时要执行的操作。
uimenu
uiactive
uicontrol
1
2
3
使用GUI接收数据,通过图形呈现数据信息,例如绘制曲线图或散点图。
数据可视化
通过GUI接收用户输入的参数,调用算法进行处理,并将结果显示在GUI上。
03
matlab矩阵运算

matlab-GUI-设计(简易科学计算器)

matlab-GUI-设计(简易科学计算器)

MATLAB大作业班级:姓名:学号:计算器➢题目本题目通过MATLAB的gui程序设计较为简单,在gui设计中主要用到三种控件,文本编辑框(edit text),静态文本框(Static text),命令按钮(push button)。

然后在通过各个按钮的回调函数,实现简单的计算功能。

➢1、功能介绍(1)具有友好的用户图形界面。

实现十进制数的加、减、乘、除、乘方、开方等简单计算。

(2)具有科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运行。

(注:三角函数计算的是弧度而不是角度)。

(3)有清除键,能清除操作。

➢2、功能实现程序由两个部分组成:MATLAB代码(.m文件)和GUI图形(.fig)。

程序使用的流程:直接利用图形界面中的按键键入所需数值、运算符等即可得出结果。

备注:软件版本:MATLAB 2011b首先用MATLAB GUI功能,在绘制一个静态文本框和一个文本编辑框,以及33个命令按钮,调整好各控件大小、颜色,整体布局如图所示:(附录中有相关属性修改介绍)然后通过双击各个按钮来改写其属性,在m文件中编写其回调函数,最后在运行调试。

2.1 各功能界面设计GUI设计界面:注:底部边框用(Panel)工具添加,有两种设计顺序。

(1、先加底部边框,再在底部边框上画功能键。

2、先画功能键,布好局,画底框,全选功能键拖动到底框上。

)2.2 各功能模块实现(可根据需要增减功能键)算法设计:1. 数字键设计:0—9以及小数点函数都一样,只是参数不同:例如:按键‘1’响应:global jjtextString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)&(jj==0)set(handles.text1,'String','1') ;elsetextString =strcat(textString,'1');set(handles.text1,'String',textString)endjj=0;2. 四则运算函数:‘+’功能响应:textString = get(handles.text1,'String');textString =strcat(textString,'+');set(handles.text1,'String',textString)‘-’功能响应:textString = get(handles.text1,'String');textString =strcat(textString,'-');set(handles.text1,'String',textString)‘×’功能响应:textString = get(handles.text1,'String');textString =strcat(textString,'*');set(handles.text1,'String',textString)‘÷’功能响应:textString = get(handles.text1,'String');textString =strcat(textString,'/');set(handles.text1,'String',textString)3. 科学计算函数:例如:‘sin’功能响应:textString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)set(handles.text1,'String','0.') ;elsea = strread(textString, '%f');a=sin(a);set(handles.text1,'String',a)end4. 退格键(DEL):通过取屏幕值,计算出其字符长度,然后取其前N-1项的值来实现退格:global jjtextString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)&(jj==0)set(handles.text1,'String','0.') ;elsess=char(textString);l=length(textString);textString=ss(1:l-1);set(handles.text1,'String',textString)endjj=0;5. 清屏键函数(AC):set(handles.text1,'String','0.') ;2.3 各模块程序添加方法选中一个需添加程序的功能键,右击,View Callbacks,Callback,出现如下图所示界面。

Matlab中LMI(线性矩阵不等式)工具箱使用教程

Matlab中LMI(线性矩阵不等式)工具箱使用教程

% S2 is 1 by 1 matrix S2 = lmivar(1, [1 0]); % Type of 2, size 1 by 2 M = lmivar(2, [1 2]); 定义完成变量之后,我们就该用 lmiterm 来描述 LMI 中的每一个项了。Matlab 的官方 文档提示我们,如果要描述一个 LMI 只需要描述上三角或者下三角元素就可以了,否则会 描述成另一个 LMI。 When describing an LMI with several blocks, remember to specify only the terms in the blocks on or below the diagonal (or equivalently, only the terms in blocks on or above the diagonal). 语法为:lmiterm(termID,A,B,flag) termID 是一个四维整数向量,来表示该项的位置和包含了哪些矩阵变量。 termID(1)可以为+p 或者-p,+p 代表了这个项位于第 p 个线性矩阵不等式的左边,-p 代表了这个项位于第 p 个线性矩阵不等式的右边。注意:按照惯例来讲,左边通常指较小 的那边。 termID(2:3): 1、对于外部变量来说,取值为[0,0]; 2、对于左边或者右边的内部变量来说,如果该项在(i,j)位置,取值[i,j] termID(4): 1、对于外部变量,取值为 0 2、对于 A*X*B,取值 X 3、对于 A*X'*B,取值-X flag(可选,值为 s): 因为:(A*X*B) + (A*X*B)T = A*X*B + B'*X'*A',所以采用 s 来进行简写。 比如:针对 A*X + X'*A' 我们采用笨方法: lmiterm([1 1 1 X],A,1) lmiterm([1 1 1 -X],1,A') 那么简写就是 lmiterm([1 1 1 X],A,1,'s') 接下来我们就看该论文中的算例吧:(1,1)位置是 -Q+Bd*S2*Bd'+Ad*S1*Ad';

MATLABGUI的使用经验与技巧

MATLABGUI的使用经验与技巧

MATLABGUI的使用经验与技巧
一、Matlab介绍
Matlab是一款由MathWorks公司推出的矩阵/数组工具软件,具有高
效的数学计算和可视化功能。

可以为科学计算和工程建模提供便捷的处理
方式,是一款多功能软件。

Matlab GUI(图形用户界面)是一种软件界面,使用户能够即时地与Matlab应用程序进行交互。

二、Matlab GUI的使用经验及技巧
1、UI组件:
Matlab GUI的UI组件是构建GUI的基础,主要有按钮、复选框、单
选框、输入框、列表框等,可以根据实际需求添加不同的UI组件,并且
可以定义UI组件的属性,如按钮的背景色、位置等。

2、回调函数:
Matlab GUI的回调函数是比较重要的一个组成部分,当用户激活一
些UI组件时,会触发回调函数,实现用户与程序的交互,从而实现各种
操作和功能。

回调函数中可以定义各种语句,调用函数,甚至可以执行程
序段,实现复杂功能。

3、数据处理:
Matlab GUI通过一定的语句,即可实现用户的数据输入、输出、处
理及其他操作,从而达到一定的功能要求。

可以在GUI中运行matlab程序,处理复杂的数据,这需要熟练掌握Matlab语言,以及其他数据处理
技术,例如正则表达式等。

4、可视化:
可视化是GUI最重要的功能之一,可以使用各种图表或实时显示数据,让用户更直观地查看和理解数据。

matlab-GUI-快速入门

matlab-GUI-快速入门
在GUI设计窗口创建图形对象后,经过双击该对象,就 会显示该对象旳属性编辑器。
一、图形顾客界面开发环境(GUIDE)
Matlab提供了一套可视化旳创建图形窗口旳工具,使 用图形顾客界面开发环境可以便地创建GUI应用程序,它 能够根据顾客设计旳GUI布局,自动生成M文件旳框架,顾 客使用这一框架编制自己旳应用程序。
图形顾客 界面GUI设计 窗口由菜单栏、 工具栏、控件 工具栏以及图 形对象设计区 等4个功能区 构成。
左图为空白 GUI模板情形
GUI设计 窗口旳菜单栏 有File、Edit、 View、Layout、 Tools和Help 6 个菜单项,使 用其中旳命令 能够完毕图形 顾客界面旳设 计操作。
编辑工具在菜单栏旳下方,提供了常用旳工具;设计 工具区位于窗口旳左半部分,提供了设计GUI过程中所用旳 顾客控件;空间模板区是网格形式旳顾客设计GUI旳空白区 域。
2. 控件对象旳描述
Matlab中旳控件大致可分为两种,一种为动作控件, 鼠标点击这些控件时会产生相应旳响应。一种为静态控件, 是一种不产生响应旳控件,如文本框等。
每种控件都有某些能够设置旳参数,用于体现控件旳外 形、功能及效果,既属性。属性由两部分构成:属性名和属 性值,它们必须是成对出现旳。
① 按钮(Push Buttons):执行某种预定旳功能或操作;
① 将控件对象放置到布局区
用鼠标选择并放置控件到布局区内; 移动控件到合适旳位置; 变化控件旳大小; 选中多种对象旳措施。
一 种 简 朴 旳 布 局 示 例
② 激活图形窗口
如所建立旳布局还没有进行存储,可用File菜单下旳 Save As菜单项(或工具栏中旳相应项),按输入旳文件 旳名字,在激活图形窗口旳同步将存储一对同名旳M文件 和带有.fig扩展名旳FIG文件。

matlab简易计算器12页

matlab简易计算器12页

电子信息工程系实验报告课程名称:MATLAB语言实验项目名称:MATLAB图形用户界面设计实验时间:2019-5-8 班级:姓名:学号:实验目的: 1、熟悉MATLAB的主要控件使用方法。

2、熟悉MATLAB的GUI设计流程。

实验环境:硬件配置( Pentium(R) 4 CPU 2.40GHz,1GB内存)操作系统(Windows XP)编程软件:MATLAB7.0实验内容与结果:使用MATLAB的GUI接口设计一个简单的计算器。

效果图:程序源码部分函数及相关注释:%0~9数字键及小数点按钮代码范例%全局变量locaval用于存储用户输入的多位数值%全局变量gloval2用于存储待处理的第二位数值function pushbutton1_Callback(hObject, eventdata, handles)global locaval;a = get(handles.pushbutton1,'String');locaval=strcat(locaval,a);set(handles.text1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);%运算符按钮处理“+、-、*、\”范例%全局变量flagnum存储运算符标志%全局变量global1用于储存第一个待处理数值function pushbutton10_Callback(hObject, eventdata, handles)a = get(handles.pushbutton10,'String');b = get(handles.text1,'String');set(handles.text1,'String',a);global flagnumglobal gloval1global locavallocaval=' ';flagnum=1;gloval1=b;guidata(hObject, handles);%取相反数按钮“+\-”代码%算法实现:用零减去文本框现在的值,再赋值给文本框function pushbutton14_Callback(hObject, eventdata, handles) 成绩:指导教师(签名):global locaval;locaval=str2num(locaval);locaval=0-locaval;locaval=num2str(locaval);set(handles.text1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);% 等号按钮运算实现%根据flagnum运算标志用switch决策语句实现相应计算%需注意相应数据类型的转化function pushbutton17_Callback(hObject, eventdata, handles)global flagnumglobal gloval1global gloval2global locavallocaval=' ';gloval1=str2num(gloval1);gloval2=str2num(gloval2);case1=gloval1/gloval2;case2=gloval1*gloval2;case3=gloval1-gloval2;case4=gloval1+gloval2;case1=num2str(case1);case2=num2str(case2);case3=num2str(case3);case4=num2str(case4);switch flagnum;case 1set(handles.text1,'String',case1);case 2set(handles.text1,'String',case2);case 3set(handles.text1,'String',case3);case 4set(handles.text1,'String',case4);endguidata(hObject,handles)% BackSpace按钮函数%算法实现:MA TLAB是用矩阵存储数据的,相应的可以取文本框的前N-1实现其功能function pushbutton19_Callback(hObject, eventdata, handles)textString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)set(handles.text1,'String','0.') ;elsess=char(textString);l=length(textString);textString=ss(1:l-1);set(handles.text1,'String',textString)endguidata(hObject,handles)%C清除按钮函数%把全局变量locaval清零function pushbutton20_Callback(hObject, eventdata, handles)global locavallocaval=' ';set(handles.text1,'String','0.');guidata(hObject,handles)%开平方函数function pushbutton22_Callback(hObject, eventdata, handles)textString = get(handles.text1,'String');textString=str2num(textString);textString=sqrt(textString);textString=num2str(textString);set(handles.text1,'String',textString);locaval=' ';guidata(hObject,handles)%取1/x函数function pushbutton24_Callback(hObject, eventdata, handles)global locavallocaval=str2num(locaval);locaval=1/locaval;set(handles.text1,'String',locaval);locaval=' ';guidata(hObject,handles)实验心得:!、通过MATLAB简单计算器的设计,初步了解了关于MATLAB图形用户界面的部分控件的使用方法。

MATLAB科学计算器设计——GUI设计(含源代码)

MATLAB科学计算器设计——GUI设计(含源代码)

MATLAB科学计算器设计——GUI设计(含源代码)目录计算器的效果图............................................................................ 错误!未定义书签。

第一章GUI设计界面 .. (4)1.1打开GUI (4)1.2.添加按钮 (5)1.3.根据按钮的作用及视觉效果做一定的修改 (5)1.4.保存、添加功能函数 (6)1.4.1 数字键编写 (6)1.4.2 符号键的编写 (6)1.4.3 运算符“=”的编写 (6)1.4.4 按键“←back”的编写 (7)1.4.5 按键“清空”的编写 (7)1.4.6 按键“退出”的编写 (7)1.4.7 按键“二进制数转十进制数”的编写 (7)1.4.8 按键“十进制数转二进制数”的编写 (7)第二章计算器的使用 (7)2.1 除法运算(÷) (7)2.2 平方运算(^2) (8)2.3 函数cos (∏/3)的计算 (8)2.4 函数arctan (∏/3)的计算 (9)2.5 以2为底的对数(log 2)的计算 (9)2.6 十进制数转二进制数的计算 (10)2.7 二进制数转十进制数的计算 (11)第三章各按键的程序源代码 (12)第四章问题和解决方法 (17)第五章心得体会 (16)参考文献 (17)计算器的效果图:第一章GUI设计界面:1.1打开GUI输入Guide 回车或者在工具栏上点击图标打开Guide 窗口:图 11.2.添加按钮图21.3.根据按钮的作用及视觉效果做一定的修改双击按钮(Puch Button)进入按键属性修改显示字符串大小、字体和颜色,然后对按钮的位置进行排布,尽量使按钮集中在静态文本框下面。

1.4.保存、添加功能函数把做好的按钮及静态文本框保存后自动弹出Editor的M文本,对然后对相应的pushbutton添加功能函数。

矩阵计算器

矩阵计算器

用Matlab GUI编写一个简单的矩阵计算器摘要:矩阵是线性代数的一个主要内容,又是解决众多问题的主要工具。

而矩阵运算是矩阵理论的基本内容之一。

目前,普通的计算器只能够进行数的运算,而不能够实现矩阵的运算。

随着科技的不断发展,人们对矩阵的运用也会不断的增多。

因此,制作一个矩阵计算器对当今科技的发展有一定的推动作用。

关键字:矩阵运算、Matlab GUI、计算器正文:一、矩阵的相关知识在数学上,矩阵是指纵横排列的二维数据表格,最早来自于方程组的系数及常数所构成的方阵。

这一概念由19世纪英国数学家凯利首先提出。

矩阵,是由个数组成的一个行列的矩形表格,通常用大写字母表示,组成矩阵的每一个数,均称为矩阵的元素,通常用小写字母其元素表示,其中下标都是正整数,他们表示该元素在矩阵中的位置。

比如,或表示一个矩阵,下标表示元素位于该矩阵的第行、第列。

元素全为零的矩阵称为零矩阵。

当一个矩阵的行数与烈数相等时,该矩阵称为一个阶方阵。

对于方阵,从左上角到右下角的连线,称为主对角线;而从左下角到右上角的连线称为付对角线。

若一个阶方阵的主对角线上的元素都是,而其余元素都是零,则称为单位矩阵,记为,即:。

如一个阶方阵的主对角线上(下)方的元素都是零,则称为下(上)三角矩阵,例如,是一个阶下三角矩阵,而则是一个阶上三角矩阵。

今后我们用表示数域上的矩阵构成的集合,而用或者表示数域上的阶方阵构成的集合。

矩阵是高等代数学中的常见工具,其中的一个重要用途是解线性方程组。

线性方程组中未知量的系数可以排成一个矩阵,加上常数项,则称为增广矩阵。

另一个重要用途是表示线性变换,即是诸如f(x) 4x之类的线性函数的推广。

同时也常见于统计分析等应用数学学科中。

在物理学中,矩阵于电路学、力学、光学和量子物理中都有应用;计算机科学中,三维动画制作也需要用到矩阵。

矩阵的运算是数值分析领域的重要问题。

将矩阵分解为简单矩阵的组合可以在理论和实际应用上简化矩阵的运算。

基于MATLAB GUI的IAPWS-IF97软件设计与开发

基于MATLAB GUI的IAPWS-IF97软件设计与开发

基于MATLAB GUI的IAPWS-IF97软件设计与开发刘明福;孙楠;高琨;高红斌【摘要】分析了IAPWS-IF97特点,以MATLAB中GUI功能为平台设计了IF97软件用户界面;研究了IF97公式中分段表达的规律,用MATLAB语言鳊制了相应的软件开发程序;阐述并例举了该软件的应用方法.【期刊名称】《机械管理开发》【年(卷),期】2010(025)002【总页数】3页(P201-202,204)【关键词】MATLAB GUI;IAPWS-IF97;软件开发【作者】刘明福;孙楠;高琨;高红斌【作者单位】山西大学工程学院,山西,太原,030013;山西大学工程学院,山西,太原,030013;山西大学工程学院,山西,太原,030013;山西大学工程学院,山西,太原,030013【正文语种】中文【中图分类】TP311.50 引言MATLAB是矩阵实验室(MatrixLaboratory)的简称,和Mathematica、Maple并称为三大数学软件[1]。

它在数学类科技应用软件中在数值计算方面首屈一指。

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

“97标准”软件开发的目的是为了用户能在已知水和蒸汽的某些性质参数时方便快捷地计算出其它参数性能,从而更好地服务于工程、科研和学习。

而MATLAB中强大的GUI功能为该软件的开发提供了便利的交互平台。

1 “97标准”简介“97 标准”即 IAPWS-IF97[2],其全称为“水和蒸汽的热力学性质的工业公式97标准”,是自1967年以来对水和蒸汽热力学性质研究成果的新总结,是对水和蒸汽的热力学性质的工业公式“67标准”的改进和完善,该标准总体特性的可用精度、区域边界的一致性和计算速度都远远超过“67标准”及其任一改进版本。

用MATLAB做的 一个计算器

用MATLAB做的 一个计算器

一、布局GUI。

1.打开Matlab,输入Guide 回车或者在工具栏上点击图标出现Guide 窗口:2.然后双击“Blank GUI(Default)”出现GUI窗口3.添加按钮4.根据按钮的作用及视觉效果做一定的修改把按钮的字符串大小、颜色进行设置,对按钮的位置进行排布,尽量使按钮集中在静态文本框下面。

最终设置的静态文本框为白色,其他按钮均为分红色。

5.保存、添加功能函数把做好的按钮及静态文本框保存后自动弹出Editor的M文本,对然后对相应的pushbutton添加功能函数。

以下是相应按钮的功能函数。

(1)数字按键编写。

在function pushbutton1_Callback(hObject, eventdata, handles)下输入:textString = get(handles.text1,'String');textString =strcat(textString,'0');set(handles.text1,'String',textString)这是使用句柄handles指向对象text1,并以字符串形式来存储数据文本框text1的内容,并存储数个“0”,然后由set(handles.text1,'String','textString'在text1中输出。

同理,分别在function pushbutton2~10_Callback(hObject, eventdata, handles)下给1~9数字按键下编写此类程序。

(2).符号键:function pushbutton12_Callback(hObject, eventdata, handles)textString = get(handles.text1,'String');textString =strcat(textString,'+');set(handles.text1,'String',textString)strcat的作用是将两个字符串连接起来,就是在已输入的存储数据textString 后添加“+”进行运算。

MATLAB中的矩阵运算

MATLAB中的矩阵运算
上页 下页 退出
哈 工 程 大 学 数 值 计 算 软 件
●randn生成正态分布的随机阵 生成正态分布的随机阵 randn(n)生成 ×n的正态随机阵; 生成n× 的正态随机阵 的正态随机阵; 生成 randn(m,n),randn([m,n])生成 ×n的正态随机阵; 生成m× 的正态随机阵 的正态随机阵; 生成 randn(size(A))生成与矩阵 大小相同的正态随机阵。 生成与矩阵A大小相同的正态随机阵 生成与矩阵 大小相同的正态随机阵。 (5)其它基本运算 左右翻转; 上下翻转; ●fliplr(A) 将A左右翻转;●flipud(A) 将A上下翻转; 左右翻转 上下翻转 旋转90度 返回A ● rot90(A) 将 A旋转 度 。 ● tril(A)返回 A 的下三角部分 ; 旋转 返回 的下三角部分; tril(A,k)返回A第K 条对角线以下部分,K=0为主对角线, 返回A 条对角线以下部分,K=0为主对角线, 返回 K>0为主对角线以上,K<0为主对角线以下。 K>0为主对角线以上,K<0为主对角线以下。 返回A ●triu(A), triu(A,K)返回A的上三角部分,其它同上。 返回 的上三角部分,其它同上。 返回以向量v为主对角线的矩阵 ●diag(v)返回以向量 为主对角线的矩阵; 返回以向量 为主对角线的矩阵; diag(v,k) 若 v 是 n 个 元 素 的 向 量 , 则 它 返 回 一 个 大 小 为 n+abs(k)方阵,向量 位于第 条对角线上。K=0代表主对角线 方阵, 位于第k条对角线上 方阵 向量v位于第 条对角线上。 代表主对角线 为主对角线以上, 为主对角线以下。 , k>0为主对角线以上,k<0为主对角线以下。 diag(A)以向量 为主对角线以上 为主对角线以下 以向量 形式, 返回A 的主对角线元素; 对于矩阵A 形式 , 返回 A 的主对角线元素 ; diag(A,k)对于矩阵 A , 返回 对于矩阵 由第k条对角线构成的列向量 条对角线构成的列向量。 由第 条对角线构成的列向量。

MATLAB的矩阵运算

MATLAB的矩阵运算

MATLAB的矩阵运算阅读⽬录 MATLAB是基于矩阵和数组计算的,可以直接对矩阵和数组进⾏整体的操作,MATLAB有三种矩阵运算类型:矩阵的代数运算、矩阵的关系运算和矩阵的逻辑运算。

其中,矩阵的代数运算应⽤最⼴泛。

本⽂主要讲述矩阵的基本操作,涉及矩阵的创建、矩阵的代数运算、关系运算和逻辑运算等基本知识。

矩阵的创建直接输⼊法创建矩阵% 1. 直接输⼊法创建矩阵>> A = [1,2,3; 4,5,6; 7,8,9]A =1 2 34 5 67 8 9函数法创建矩阵简单矩阵% 2. 函数法创建矩阵>> zeros(3)% ⽣成3x3的全零矩阵ans =0 0 00 0 00 0 0>> zeros(3,2)% ⽣成3x2的全零矩阵ans =0 00 00 0>> eye(3)% ⽣成单位矩阵ans =1 0 00 1 00 0 1>> ones(3)% ⽣成全1矩阵ans =1 1 11 1 11 1 1>> magic(3)% ⽣成3x3的魔⽅阵ans =8 1 63 5 74 9 2>> diag(1:3)% 对⾓矩阵ans =1 0 00 2 00 0 3>> diag(1:5,1)% 对⾓线向上移1位矩阵ans =0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 3 0 0 0 0 0 0 4 0 0 0 0 0 0 5 0 0 0 0 0 0 >> diag(1:5,-1)% 对⾓线向下移1位矩阵ans =0 0 0 0 0 01 0 0 0 0 0 02 0 0 0 0 0 03 0 0 0 0 0 04 0 0 0 0 0 05 0 >> triu(ones(3,3))% 上三⾓矩阵ans =1 1 10 1 10 0 1>> tril(ones(3,3))% 下三⾓矩阵ans =1 0 01 1 01 1 1随机矩阵>> rand(3)% ⽣成随机矩阵ans =0.2898 0.8637 0.05620.4357 0.8921 0.14580.3234 0.0167 0.7216>> rand('state',0); % 设定种⼦数,产⽣特定种⼦数下相同的随机数>> rand(3)ans =0.9501 0.4860 0.45650.2311 0.8913 0.01850.6068 0.7621 0.8214>> a = 1; b = 100;>> x = a + (b-a)* rand(3)% 产⽣区间(1,100)内的随机数x =38.2127 20.7575 91.113389.9610 31.0064 53.004043.4711 54.2917 31.3762>> a = 1; b = 100;>> a + fix(b * rand(1,50))% 产⽣50个[1,100]内的随机正整数ans =列 1 ⾄ 154 72 77 6 63 27 32 53 41 90 58 57 40 70 57列 16 ⾄ 3035 60 28 5 84 11 73 45 100 57 47 42 22 24 32列 31 ⾄ 4587 26 97 31 38 35 71 62 76 80 22 90 90 94 28列 46 ⾄ 5048 26 37 53 39相似函数扩展>> randn(3)% ⽣成均值为0,⽅差为1的正太分布随机数矩阵ans =-0.4326 0.2877 1.1892-1.6656 -1.1465 -0.03760.1253 1.1909 0.3273>> randperm(10)% ⽣成1-10之间随机分布10个正整数ans =4 9 10 25 8 1 3 7 6% 多项式x^3 - 7x + 6 的伴随矩阵>> u = [1,0,-7,6];>> A = compan(u)% ⽣成伴随矩阵A =0 7 -61 0 00 1 0>> eig(A) % 此处eig()函数⽤于求特征值% 利⽤伴随矩阵求得⽅程的根ans =-3.00002.00001.0000矩阵的运算矩阵的代数运算矩阵的算术运算>> A = [1,1;2,2];>> B = [1,1;2,2];>> AA =1 12 2>> BB =1 12 2>> A + Bans =2 24 4>> B-Aans =0 00 0>> A * Bans =3 36 6>> A^2ans =3 36 6>> A^3ans =9 918 18矩阵的运算函数>> C = magic(3)C =8 1 63 5 74 9 2>> size(C)ans =3 3>> length(C)ans =3>> sum(C)ans =15 15 15>> max(C)ans =8 9 7>> C'ans =8 3 41 5 96 7 2>> inv(C)ans =0.1472 -0.1444 0.0639 -0.0611 0.0222 0.1056 -0.0194 0.1889 -0.1028矩阵的元素群运算元素群运算,是指矩阵中的所有元素按单个元素进⾏运算,也即是对应位置进⾏运算。

基于MATLAB的多功能计算器设计与实现

基于MATLAB的多功能计算器设计与实现

基于MATLAB的多功能计算器设计与实现摘要随看信息技术的发展,数据变得越来越重要,针对数据的处理也越来越复杂,计算器在我们日常生活学习中扮演越来越重要角色。

本文基于MATLAB设计的GUI 多功能计算器,包括三部分:简易计算器、科学计算器和程序员计算器。

其中,简易计算器包括了常用的加减乘除;科学计算器在加减乘除上,添加了正余弦、阶乘和对数等常用的数学计算;程序员计算器包括了二进制、八进制、十六进制的相互转换和二进制的与、或和异或等逻辑运算。

此多功能计算器改进了以前功能单一的计算器,具有较强的实用性。

关键字:MATLAB; GUI ;多功能计算器AbstractWith the development of information technology, the data become more andmore complicated, according to data operations have become increasingly frequent, thecalculator is playing a more and more important role in leamning in our daily life. In this paper,MATLAB design of GUI based multi functional calculator, consists of three parts: a simplecalculator, scientific calculator and programmers calculator. The simple calculator, includingcommon add, subtract, multiply and divide; scientific calculator in add, subtract, multiply anddivide, add the commonly used mathematical cosine, factorial and logarithm calculation;programmers calculator includes the conversion of binary, octal, hexadecimal and binarysixteen and, or and XOR logic operation. The multi-function calculator before improvedsingle function has a strong practical.Keyword: MATLAB; GUI; Multi Function Calculator目录第1章绪论 (1)1.1.基于MATLAB的多功能计算器设计的目的和意义 (1)1.2国内外现状分析 (1)1.2.1 国内外计算器的发展 (1)1.2.2计算器的类型 (2)第2章数字信号处理原理概念 (4)2.1数字信号处理 (4)2.2数字信号处理的概述 (4)2.3用MATLAB实现信号处理 (4)2.3.1信号的取样 (4)2.3.2信号的重构 (5)第3章计算器总体设计 (6)3.1计算器整体设计思路 (6)3.2计算器的功能实现 (7)3.2.1数字0-9设计与实现 (7)3.2.2四则运算设计 (7)3.2.3简单科学计算设计 (7)3.2.4功能按钮设计 (7)第4章 MATLAB GUI界面设计 (8)4.1MATLAB GUI介绍 (8)4.2GUI界面创建的基本知识 (8)4.3计算器界面设计 (9)第5章 MATLAB程序设计 (10)5.1 M文件 (10)5.1.1局部变量与全局变量 (10)5.1.2M文件的编辑与运行 (11)5.1.3脚本文件 (13)5.1.4函数文件 (13)5.1.5函数调用 (14)5.2MATLAB的程序控制结构 (16)5.3 数据的输入与输出 (17)5.3.1 键盘输入语句(input) (17)5.3.2屏幕输出语句(disp) (17)5.3.3 M数据文件的存储/加载(save/load) (17)5.3.4二进制数据文件的存储/读取 (18)5.4.面向对象程序设计的基本方法 (19)5.4.1.创建类目录 (19)5.4.2.建立类的数据结构 (19)5.4.3创建类的基本方法 (19)5.4.4重载运算 (19)5.4.5面向对象的函数 (19)5.5MATLAB程序优化 (19)结语 (20)附录 (21)参考文献 (28)致谢...............................................................................................................第1章绪论1.1.基于MATLAB的多功能计算器设计的目的和意义当今时代是一个信息化的时代,信息化的时代到处充满了数据,生活在这个信息化时代的人们,无论人们在做什么行业,都需要时时刻刻跟数据打交道。

MATLABGUI入门简单实例(加法计算器)

MATLABGUI入门简单实例(加法计算器)

本人初学GUI ,针对网上版本的混乱,学得一头雾水,特重新整理如下,供大家参考。

1.首先我们新建一个 GUI 文件:File/New/GUI 如下图所示;选择 Blank GUI(Default),点击 OK 。

2.进入GUI 开发环境以后添加 3个编辑文本框(Edit Text ),2个静态文本框(Static Text ), 和一个Push Button 按钮,布置如下图所示;⑷修改Pushbutton 按钮的属性,“ string 改为“ Add ” “ tag 改为“ add ”⑸另外2个Static 文本就是的“ string 修改为"+ ”"=”(6)点击“保存”,名字任意取,自动弹出 M 文件(我的是7.0版本,不知其他版本会不 会如此)。

(1) 第一个 “in putl ”(2) 第二个 “input2 ”(3)第三个“ Edit Text! ”的用来存储第一个加数,我们将“Edit Tex2”的用来存储第二个加数,我们将"Edit Tex3"的 “string 改为 “Q ” “tag 为““ string 改为 “ 0,” “ tag 改为 “ string 改为 “ 0” “ tag 改为 an swer3•我们先为第一个Edit Text文本框添加代码,即读取第一个加数;点击上图所示红色方框,选择input1_Callback,光标便立刻移到下面这段代码(程序自动生成)的位置。

function in put1_Callback(hObject, even tdata, han dies)% hObject han dle to in putl (see GCBO)% eve ntdata reserved - to be defi ned in a future version of MATLAB% han dles structure with han dles and user data (see GUIDATA)% Hints: get(hObject, ' String ' ) returns cpnttlnasoext% str2double(get(hObject, ' String ' )) returnscontents of editl as a double然后在上面这段代码的下面插入如下代码:%以字符串的形式来存储数据文本框1的内容•如果字符串不是数字,则现实空白内容input=str2num(get(hObject,'String')); %检查输入是否为空.如果为空,则默认显示为0 if(isempty(i nput))set(hObject,'Stri ng','0')endguidata(hObject,handles);%保存handles结构体,只要在handles结构体有改变时,才需要保存%guidata(hObject, handles);%这里由于handles没有改变,故这里其实没有必要,但是为了避免潜在的不必要麻烦,建议在所有Callback都添加该命令。

matlab 矩阵运算程序

matlab 矩阵运算程序

matlab 矩阵运算程序MATLAB是一种强大的数学软件,主要用于数值计算、算法开发、数据可视化和数据分析等。

在MATLAB中,矩阵运算是非常常见的操作。

以下是一个简单的MATLAB矩阵运算程序示例:```matlab创建两个矩阵A和BA = [1, 2, 3;4, 5, 6;7, 8, 9];B = [9, 8, 7;6, 5, 4;3, 2, 1];矩阵加法C = A + B;disp('矩阵A和矩阵B的和:');disp(C);矩阵减法D = A - B;disp('矩阵A和矩阵B的差:'); disp(D);矩阵乘法E = A * B;disp('矩阵A和矩阵B的乘积:'); disp(E);矩阵转置T = transpose(A);disp('矩阵A的转置:');disp(T);求矩阵的行列式det_A = det(A);disp('矩阵A的行列式:');disp(det_A);求矩阵的逆矩阵inv_A = inv(A);disp('矩阵A的逆矩阵:');disp(inv_A);求矩阵的秩rank_A = rank(A);disp('矩阵A的秩:');disp(rank_A);求矩阵的特征值eig_A = eig(A);disp('矩阵A的特征值:');disp(eig_A);```以上程序演示了MATLAB中的一些基本矩阵运算,如加法、减法、乘法、转置、求行列式、求逆矩阵、求秩和求特征值等。

您可以根据实际需求修改矩阵A和B的值,然后运行该程序以观察结果。

需要注意的是,这里的矩阵运算都是在MATLAB环境下进行的。

如果要编写比MATLAB更快的矩阵运算程序,可以尝试使用如C、C++等编程语言,并链接到高性能的数学库,如Intel的Math Kernel Library(MKL)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数学应用软件工具箱开发——矩阵计算器姓名: ***学号:********指导老师: ***专业:********2014年9月11日一.操作过程1.准备工作①在Matlab的主窗口中,选择File菜单中的New菜单项,再选择其中的GUI 命令,就会显示GUI的设计模板;②选择GUI模板中的默认的空白模版Blank GUI(Default)就会显示GUI设计窗口,可以开始设计矩阵计算器了。

2.设计过程①在GUI界面中加入以下控件:1>2个文本编辑器(edit text)作为输入矩阵的窗口;2>16个用以执行运算的按钮(push button);3>4个静态文本框(static text),其中一个作为显示计算所得结果的窗口,另外3个分别作为表示所输入的矩阵(A、B)以及用来输入标题(矩阵计算器);4>加入3个按钮组(button group)分别圈住:a.1>中的2个控件及3>中的A、B;b.2>中的16个计算按钮;c.3>中的显示计算结果的窗口。

②分别双击以上25个控件修改其string属性如下:1>中的改为空白(将原有的“edit text”删掉);2>中的改为对应的矩阵运算或文字,如“+”、“/R”、“秩”、“逆”等(见图1);3>中的按顺序改为空白、“A”、“B”以及“矩阵计算器”;4>中的按钮组分别改为“输入区”、“功能区”、“输出区”。

③对每个控件分别单击右键,选择“view callback”→“callback”→“保存”,在每个控件的函数后加入代码(见附件)。

④此外,还需要做的小变动有:1>②中修改string属性时通过修改fontWeight及fontSize把string的字符粗细、字号也一并修改了。

2>分别双击2个文本编辑器(edit text)将其max属性取值为100或更大的值,以使编辑器有滚动条,方便显示输入的维数比较大的矩阵。

3>双击计算结果窗口将其style改为listbox,也用于显示维数比较大的计算结果。

4>还可修改各控件的backgroundcolor(背景色)、HorizontalAligment(对齐方式)等其他属性以美化界面。

⑤保存运行的结果如下:图1二.功能简介1.功能概述此矩阵计算器能够实现一些基本的矩阵运算,包括对单个矩阵的运算以及对两个矩阵的运算。

其中,对于两个矩阵的运算有:加、减、乘、除(左除、右除)、按元素乘、按元素除以及求解线性方程组;对于単个矩阵的运算有:转置、求秩、求逆、计算行列式、求2范数、LU分解、最简阶梯阵化简、求特征值等。

计算过程中,矩阵的输入方式有两种:1>与MATLAB中矩阵输入方式类似,即:矩阵行中的元素以空格或逗号间隔;矩阵行之间以分号间隔;整个元素列表用方括号括起来。

2>为方便计算,可直接输入每行的元素,行之间用回车间隔,每行的元素之间用空格间隔即可。

(注:本报告为能把输入的矩阵完全显示出来,选择第一种输入方式)2.功能详细描述1> 矩阵相加(减)输入A=[1 2 3;4 5 6;7 8 9],B=[1 4 7;2 5 8;3 6 9],按下“+”按钮,输出区显示计算结果如图2所示:图2输入的A、B矩阵必须是维数相同,否则不能实现相加运算。

如输入不同维数的矩阵且进行相加运算,则会提示出错,如图3所示:图3两矩阵相减的运算过程与相加运算类似,在此不再赘述。

2> 点乘(除)输入A=[1 2 3;4 5 6;7 8 9],B=[1 4 7;2 5 8;3 6 9],按下“.*”按钮,输出区显示计算结果如图4所示:图4输入的A、B矩阵必须是维数相同,否则不能实现按元素乘(除)的运算。

如输入不同维数的矩阵且进行按元素乘的运算,则会提示出错,提示信息同图3。

3> 矩阵相乘:输入A=[1 2 3;4 5 6;7 8 9],B=[1 4 7;2 5 8;3 6 9],按下“*”按钮,输出区显示计算结果如图5所示:图5输入的A、B矩阵必须满足前者的列数等于后者的行数,否则不能实现矩阵的乘法运算,出现错误提示如图6所示:图64> 左除(右除):输入A=[1 2 3;4 5 6;7 8 9],B=[1 4 7;2 5 8;3 6 9],按下“/L”按钮,输出区显示计算结果如图7所示:图7输入的A、B矩阵必须满足行相等,否则出现错误提示如图8所示:图85> 矩阵转置:输入矩阵A=[1 2 3;4 5 6;7 8 9],点击“A’”按钮,显示结果如图9所示:图96> 矩阵求秩:输入矩阵A=[1 2 3;4 5 6;7 8 9],点击“秩”按钮,输出区显示计算结果如图10所示:图107> 矩阵求逆:输入矩阵A=[1 2 4;4 5 6;7 8 9],按下“逆”按钮,输出区显示计算结果如图11所示:图11本矩阵计算器求逆功能只针对非奇异方阵,如果输入矩阵A为奇异阵或非方阵,均会提示错误A为非方阵时提示错误如图12:图12A为奇异阵时提示错误如图13:图138> 行列式:输入A=[1 2 4;4 5 6;7 8 9],按下“行列式”按钮,输出区显示计算结果如图14所示:图14输入矩阵A必须为方阵,否则无法计算行列式,提示错误如图15所示:图159> 范数:输入矩阵A=[1 2 3;4 5 6;7 8 9],按下“范数”按钮,输出区显示计算结果如16所示:图16由于设计者能力有限,本计算器默认计算矩阵的2范数,其他范数暂不能计算。

10> LU分解:输入矩阵A=[1 2 3;4 5 6;4 2 6],按下“LU”按钮,输出区显示计算结果如图17所示:图17其中,输出前三行为L矩阵,中间三行为U矩阵,后三行为P矩阵11> 线性方程组求解:AX=B输入A=[1 2 3;4 5 6;7 8 9](系数矩阵),B=[4;5;6](常数项),按下“Ax=B”按钮,输出区显示计算结果图18所示:图18本部分输入限制较大,须详细说明。

第一,系数矩阵必须是非奇异的方阵,否则方程组解不存在或不唯一,本计算器无法求解。

第二,常数项必须与系数矩阵行数相同,否则也会出现错误提示12> 最简行阶梯形矩阵:输入矩阵A=[1 2 3;4 5 6;7 8 9],分别按下“阶梯形”按钮,输出区显示计算结果如图19所示:图1913> 特征值:输入矩阵A=[1 2 3;4 5 6;7 8 9],按下“特征值”按钮,输出区显示计算结果如图20所示:图20附录:主要代码%%矩阵相加a=str2num(get(handles.edit1,'string'));b=str2num(get(handles.edit2,'string'));[ia ja]=size(a);[ib jb]=size(b);if ia ~= ib | ja ~= jb |(ia ~= ib & ja ~= jb)%判断A、B是否满足相加条件 c='error.Matrix dimensions must agree.';set(handles.text1,'String',c)guidata(hObject, handles);elseresult = a+b ;c= num2str(result);set(handles.text1,'String',c)guidata(hObject, handles);end%%矩阵相减a=str2num(get(handles.edit1,'string'));b=str2num(get(handles.edit2,'string'));[ia ja]=size(a);[ib jb]=size(b);if ia ~= ib | ja ~= jb |(ia ~= ib & ja ~= jb)%判断A、B是否满足相减条件 c='error.Matrix dimensions must agree.';set(handles.text1,'String',c)guidata(hObject, handles);elseresult = a-b ;c= num2str(result);set(handles.text1,'String',c)guidata(hObject, handles);end%%矩阵点乘a=str2num(get(handles.edit1,'string'));b=str2num(get(handles.edit2,'string'));[ia ja]=size(a);[ib jb]=size(b);if ia ~= ib | ja ~= jb |(ia ~= ib & ja ~= jb)%判断A、B是否满足点乘条件 c='error.Matrix dimensions must agree.';set(handles.text1,'String',c)guidata(hObject, handles);elseresult = a.*b ;c= num2str(result);set(handles.text1,'String',c)guidata(hObject, handles);end%%矩阵相乘a=str2num(get(handles.edit1,'string'));b=str2num(get(handles.edit2,'string'));[ia ja]=size(a);[ib jb]=size(b);if ja ~= ib %判断A、B是否满足相乘条件c='error.Inner matrix dimensions must agree.';set(handles.text1,'String',c)guidata(hObject, handles);elseresult = a*b ;c= num2str(result);set(handles.text1,'String',c)guidata(hObject, handles);end%%矩阵点除a=str2num(get(handles.edit1,'string'));b=str2num(get(handles.edit2,'string'));[ia ja]=size(a);[ib jb]=size(b);if ia ~= ib | ja ~= jb |(ia ~= ib & ja ~= jb)%判断A、B是否满足点除条件 c='error.Matrix dimensions must agree.';set(handles.text1,'String',c)guidata(hObject, handles);elseresult = a./b ;c= num2str(result);set(handles.text1,'String',c)guidata(hObject, handles);end%%矩阵左除a=str2num(get(handles.edit1,'string'));b=str2num(get(handles.edit2,'string'));[ia ja]=size(a);[ib jb]=size(b);if ia ~= ib %判断A、B是否满足左除条件c='error.Matrix dimensions must agree.'; set(handles.text1,'String',c)guidata(hObject, handles);elseresult = a\b ;c= num2str(result);set(handles.text1,'String',c)guidata(hObject, handles);end%%矩阵右除a=str2num(get(handles.edit1,'string'));b=str2num(get(handles.edit2,'string'));[ia ja]=size(a);[ib jb]=size(b);if ia ~= ib %判断A、B是否满足右除条件c='error.Matrix dimensions must agree.'; set(handles.text1,'String',c)guidata(hObject, handles);elseresult = a/b ;c= num2str(result);set(handles.text1,'String',c)guidata(hObject, handles);end%%矩阵求秩a=str2num(get(handles.edit1,'string'));c=a';set(handles.text1,'string',num2str(c))a=str2num(get(handles.edit1,'string'));result =rank(a) ;c= num2str(result);set(handles.text1,'String',c)guidata(hObject, handles);%%求逆a=str2num(get(handles.edit1,'string'));[ia ja]=size(a);if ia~= ja %判断A是否为方阵 c='error.Matrix dimensions must agree.'; set(handles.text1,'String',c)guidata(hObject, handles);elseif abs(det(a))<1e-6 %判断A是否为奇异阵c='error.Matrix is singular to working precision.'; set(handles.text1,'String',c)guidata(hObject, handles);elseresult = inv(a) ;c = num2str(result);set(handles.text1,'String',c)guidata(hObject, handles);endend%%求行列式a=str2num(get(handles.edit1,'string'));[ia ja]=size(a);if ia ~= ja %判断A是否为方阵c='error.Matrix dimensions must agree.';set(handles.text1,'String',c)guidata(hObject, handles);elseresult = det(a) ;c= num2str(result);set(handles.text1,'String',c)guidata(hObject, handles);end%%求2-范数a=str2num(get(handles.edit1,'string'));result = norm(a);c = num2str(result);set(handles.text1,'String',c)guidata(hObject, handles)%%求LU分解a=str2num(get(handles.edit1,'string'));[L,U,P]=lu(a);result = [L;U;P] ;c= num2str(result);set(handles.text1,'String',c)guidata(hObject, handles)%%求AX=Ba=str2num(get(handles.edit1,'string'));b=str2num(get(handles.edit2,'string'));[ia ja]=size(a);[ib jb]=size(b);if ia ~= ibc='error.';set(handles.text1,'String',c)guidata(hObject, handles);elseif ia ~=ja %判断A是否为方阵c='error.Matrix must be square.';set(handles.text1,'String',c)guidata(hObject, handles);elseif det(a) == 0 %判断A是否为奇异阵c='error.Matrix is singular to working precision.'; set(handles.text1,'String',c)guidata(hObject, handles);elseresult = a\b ;c = num2str(result);set(handles.text1,'String',c)guidata(hObject, handles);endendenda=str2num(get(handles.edit1,'string'));result = rref(a);c= num2str(result);set(handles.text1,'String',c)guidata(hObject, handles);%%求特征值a=str2num(get(handles.edit1,'string'));[ia ja]=size(a);if ia ~= ja %判断A是否为方阵c='error.Matrix must be square .';set(handles.text1,'String',c)guidata(hObject, handles);elseresult = eig(a) ;c= num2str(result);set(handles.text1,'String',c) guidata(hObject, handles); end。

相关文档
最新文档