matlab中字符能做四则运算吗
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中字符能做四则运算吗相关的知识,希望对你有一定的参考价值。
在Matlab的命令行窗口,可以直接进行四则运算,也就是加减乘除。这里,我们换一种路径,改在GUI里实现四则运行,如图(1)所示:这里写图片描述
图(1) 用Matlab GUI实现四则运算
1)打开Matlab,点击工具栏上的【File】–》New–》GUI,命名为:addnum.fig
2)在addnum.fig面板里,拖曳6个静态文本TXT控件、6个编辑框EDIT控件、4个按钮,6个EDIT控件的String属性值0,分别设置编辑框、按钮的String属性和Tag属性。如表(1)所示:
表(1) 设置控件的String与Tag属性
String Tag
编辑框a 0 edit_a
编辑框b 0 edit_b
编辑框a+b 0 edit_sum
编辑框a-b 0 edit_sub
编辑框a*b 0 edit_cheng
编辑框a/b 0 edit_chu
按钮[求和] 求和 addNum
按钮[求差] 求差 subNum
按钮[求积] 求积 chengNum
按钮[求商] 求商 chuNum
3)编写4个按钮的Callback代码
%%addnum.m
%%相加
function addNum_Callback(hObject, eventdata, handles)
a = str2num(get(handles.edit_a,'String'));
b = str2num(get(handles.edit_b,'String'));
c = a+b;
str = num2str(c);
set(handles.edit_sum,'String',str);
%%相减
function subNum_Callback(hObject, eventdata, handles)
a2 = str2num(get(handles.edit_a,'String'));
b2 = str2num(get(handles.edit_b,'String'));
c2 = a2-b2;
str2 = num2str(c2);
set(handles.edit_sub,'String',str2);
%%相乘
function chengNum_Callback(hObject, eventdata, handles)
a2 = str2num(get(handles.edit_a,'String'));
b2 = str2num(get(handles.edit_b,'String'));
c2 = a2*b2;
str2 = num2str(c2);
set(handles.edit_ji,'String',str2);
%%相除
function chuNum_Callback(hObject, eventdata, handles)
a2 = str2num(get(handles.edit_a,'String'));
b2 = str2num(get(handles.edit_b,'String'));
if ( b2~=0)
c2 = a2/b2;
str2 = num2str(c2);
set(handles.edit_shang,'String',str2);
else
%disp('除数为0')
errordlg('除数不能为0!');
end
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
4)在MatLab的命令行窗口,输入:addnum,弹出Untitled对话框,输入相应的数字,就可以进行加减乘除了。注意不要点击.fig文件,该文件只是资源文件,真正执行命令的文件是.m文件(脚本文件或函数文件)。如图(2)所示:
这里写图片描述
图(2) 切换目录到..\addnum,并输入命令:addnum,就可以进行GUI方式的四则运算了。
详细代码,请看:
http://download.csdn.net/detail/sanqima/9302393 参考技术A clccleara=round(rand*90)+10;b=round(rand*90)+10;c=input('请输入一个四则运算符号,请用单引号括起来');switchccase'+'d=a+b;case'-'d=a-b;case'*'d=a*b;case'/'d=a/b;endd示范:请输入一个四则运算符号,请用单引号括起来'*'d=7520
MATLAB中的@运算符是啥?
【中文标题】MATLAB中的@运算符是啥?【英文标题】:What is the @ operator in MATLAB?MATLAB中的@运算符是什么? 【发布时间】:2011-01-07 05:17:22 【问题描述】:我以前只使用过 MATLAB 6.5。我有一些使用'@'的程序。谁能告诉我这是什么?
顺便问一下,MATLAB 6.5 支持这个运算符吗?
【问题讨论】:
【参考方案1】:@ 运算符创建一个函数句柄,它允许您像变量一样轻松创建和传递函数调用。它有许多不错的功能,不幸的是,您没有一个可用。这是因为正如您所怀疑的,它直到版本 7 才被引入 matlab,即紧随您之后的版本。
【讨论】:
【参考方案2】:它曾经在Matlab中声明Anonymous Functions。
我认为术语是“Function Handle”。
实际上它涵盖了 Matlab 无法在任何 M 文件的任何位置声明函数。
您可能会在这里看到它: What is your favourite MATLAB/Octave programming trick?
我发现它与“blockproc”命令一起在图像处理中很有用。
【讨论】:
实际上,它被称为函数句柄(不是处理程序),使用类似的命名约定,因为图形对象也有“句柄”。【参考方案3】:文档说它是function handle。
【讨论】:
以上是关于matlab中字符能做四则运算吗的主要内容,如果未能解决你的问题,请参考以下文章