欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MATLAB GUI设计(2)

程序员文章站 2022-04-12 17:46:31
...

MATLAB GUI设计(2)

1、小Tips:
(1)在命令行输入 edit ,打开M文件编辑窗口。
(2)编辑功能:
1)选择:Shift + 箭头键
2)注释:Ctrl + R添加注释%,Ctrl + T删除注释
3)缩进:Ctrl + ] 增加缩进量,Ctrl + [ 减少缩进量
(3)查询功能:help+具体函数名 / look for +关键字。
(4)模糊寻找功能:输入命令的前几个字母,然后按 Tap键,系统将列出所有以其开头的命令。
(5)注释:大段注释快捷键“Ctrl+R”,取消注释快捷键“Ctrl+T ”。

2、MATLAB中的函数类型
(1)匿名函数
创建匿名函数标准格式:F = @(input1,input2,...)expr
【例2.1】

>>myfhd = @(x)(x - 2 * x^2)
>>myfhd(4)

%运行结果如下
ans =
   -28

2)M文件主函数
M文件第一行定义的函数就是M文件主函数,一个M文件只能包含一个主函数。

(3)子函数
M文件中主函数以外的其他函数称为子函数,保存时所用的函数名应与主函数定义名相同。
M文件内部发生函数调用时,MATLAB首先检查该文件中是否存在相应名称的子函数,然后检查这一M文件所在目录的子目录下是否存在同名的私有函数,然后按照MATLAB路径,检查是否存在同名的M文件或内部函数。

(4)嵌套函数
定义在其他函数内部的函数。嵌套函数的书写语法格式如下:

function x = A(b1,b2)
..
   function y = B(c1,c2)
   ..
   e
nd
..
end

(5)重载函数
重载是计算机编程中非常重要的概念,它经常是用在处理功能类似,但是参数类型或个数不同的函数编写中。例如实现两个相同的计算功能,输人变量数量相同,不同的是其中一个输人变量的类型为双精度浮点类型,另一个输人类型为整型,这时候用户就可以编写两个同名函数,一个用来处理双精度浮点类型的输人函数,另一个用来处理整型的输人参数。MATLAB的内置函数中有许多重载函数,放置在不同的文件路径下,文件夹名称以@开头,然后跟一个代表MATLAB数据类型的字符。

3、MATLAB三大程序控制模式:顺序结构、选择结构和循环结构。

(1)顺序结构:程序源代码按照从上至下的次序依次执行。
1)数据输入
A = input(提示信息,选项);

x = input(prompt)
str = input(prompt,'s')

2)数据输出
disp(输出项);

(2)选择结构:
【if-else-end语句】多重判断选择
1)单分支if语句

if 条件
   语句组
end

2)双分支if语句

if 条件
        语句组1
   else
        语句组2
end

3)多分支if语句

if  条件1
         语句组1
     elseif 条件2
         语句组2
     ...
     elseif 条件m
         语句组m
     else
         语句组n
end

【多分支判断选择】switch-case语句
switch语句根据表达式取值的不同,分别执行不同的语句,格式为:

swtich 表达式
    case 表达式1
       语句组1
    case 表达式2
       语句组2
    ...
    case 表达式m
       语句组m
    otherwise
       语句组n
end
%在MATLAB语言中,当其中一个case语句后的条件为真时,switch-case语句不对其后的case语句进行判断,不向C语言那样需要break语句。

(3)循环结构
1)循环次数确定的for循环
语句格式:

for 循环变量 = 表达式1 : 表达式2 : 表达式3 
    循环体语句
end

表达式1是循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值,步长为1时,表达式2可以省略。
【例2.2】输出3位水仙花数
(水仙花数是指一个n位数(n>=3),它的每个位上的数字的n次幂之和等于它本身)

for m = 100:999

   m1 = fix(m/100);
                        %求m的百位数字

   m2 = rem(fix(m/10),10);
                 %求m的十位数字

   m3 = rem(m,10);
                         %求m的个位数字

   if m == ml*ml*m1 + m2*m2*m2 + m3*m3*m3
      disp(m)

   end

end
——————————
输出结果如下:
153
370
371
407

2)循环次数不确定的while循环
语句格式:

while  循环结构
   循环体语句
end

【例2.3】输入若干个数,当输入0时结束输入,求这些书的平均数和它们的和。

sum = 0;

n = 0;

val= input('请输入数字(输入0结束):');
while (val~ = 0)

  sum= sum + val;

  n=n+1;

  val = input('请输入数字(输入0结束):');

end

if (n> 0)

  sum

  mean = sum/n

end
—————————————————————
输出结果如下:
请输入数字(输入0结束):1
请输入数字(输入0结束):2
请输入数字(输入0结束):3
请输入数字(输入0结束):4
请输入数字(输入0结束):5
请输入数字(输入0结束):0

sum = 
     15
mean
 = 
     3

(4)流程控制语句其它常用命令
1)break命令
用于for或while循环语句中,与if语句一起使用,中止本次循环,跳出最内层循环。

a=4;b=6;
for i=1:4 
   b=b + 1;
   if i>2
     break      %当if条件满足时不再执行循环
   end

   a = a + 2
end
———————————————————————
运行结果如下:
a = 
   6
a = 
   8

2)continue命令
用于for或while循环语句中,与if语句一起使用,达到跳过本次循环,去执行下一次循环的目的。

a=4;b=6;
for i = 1:4 
   b=b+ 1; 
   if i<2
      continue           %当if条件满足时不再执行后面语句
   end
   a=a+2                 %当1<2时不执行该语句
end
—————————————————————————
运行结果如下:
a = 
   6
a = 
   8
a = 
   10
相关标签: MATLAB