【Matllab】笔记(2)——程序文件/函数/绘图

本文介绍MATLAB中的M文件创建及编辑方法,涵盖循环结构、条件判断等编程基础,并讲解了函数定义、调试技巧及绘图操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

命令式文件——M文件

Tip:使用<Ctrl>或者<Shift>可以选择多条历史命令
  • 命令窗口输入edit
  • 单击工具栏的“创建”
  • File->New->Blank  M-File
用于创建M文件

例:求sin(0)到sin(10)的值
for i=0:10
    a=sin(i);
    fprintf( 'sin(%d)=',i)
    fprintf( '%.4f\n',a)
end
命名为sinvalve,指定文件路径后,在命令窗口输入

>> sinvalve
sin(0)=0.0000
sin(1)=0.8415
sin(2)=0.9093
sin(3)=0.1411
sin(4)=-0.7568
sin(5)=-0.9589
sin(6)=-0.2794
sin(7)=0.6570
sin(8)=0.9894
sin(9)=0.4121
sin(10)=-0.5440


函数题头:function [输出变量列表]=函数名(输入变量列表)
帮助信息索引行:函数帮助文本的第一行内容为该函数的大致描述,当使用lookfor查看该函数时,显示该行
帮助详细信息:提供函数的完整帮助信息,包括索引行到第一个可执行行或者空行为止的所有注释信息,通过MATLAB的帮助系统查看函数的帮助信息时,显示该部分
函数体:函数的daimaduan
注释部分:对函数题语句的解释和说明文本,注释以英文状态下的“%”引导


function y= AverageVector( x )
% AVERAGEVECTOR Mean of vector elements
% AVERAGEVECTOR(X), where x is a vector, is the mean of
%vector elements. Nonvector input is an error.
[m,n]=size(x);
if (~((m==1)||(n==1)))
    disp( '输入必须是向量');
    return;
end
y=sum(x)/length(x);


for循环语句
for 循环变量=表达式1(初值):表达式2(增量):表达式3(终值)
     循环语句组
end

>> for i=1:10
x(i)=(i).^2;
end
>> x

x =

[ 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]




while循环语句
while 表达式
     执行语句
end
例:1~100求和

>> sum=0;i=1;
>> while(i<=100)
sum=sum+i;i=i+1;
end
>> sum

if 表达式
     执行语句
end

if 表达式
     执行语句1
else
     执行语句2
end

%当if有三种及以上选择时
if 表达式1    
         执行语句1
elseif 表达式2
          执行语句2
elseif 表达式3
          执行语句3
...
else      执行语句

end

x=-6:0.1:6; %
leng=length(x); %
for m=1:leng
    if x(m)<=0
        y(m)=sin(x(m));
    elseif x(m)<=3
        y(m)=x(m);
    else
        y(m)=-x(m)+6;
    end
end
plot(x,y, '*'),grid; %




switch-case

switch <选择判断量>
case 选择判断值1
          选择判断语句1
case 选择判断值2
          选择判断语句2
...
otherwise
          判断执行语句
end

特别注意:MATLAB的switch-case和c中的switch-case的不同之处在于,MATLAB当其中一个case为真时,switch-case语句不对后面的case语句进行判断。也就是说即使有多个case判断语句为真,也只执行第一条为真的语句,而不必像c语言中在每个case语句之后加上一个break来防止继续执行后面为真的case条件语句。

例:判断季节
%Seasons
function demo_switch_case(month)
switch month
    case {3,4,5}
        season= 'Spring'
    case {6,7,8}
        season= 'Summer'
    case {9,10,11}
        season= 'Fall'
    case {12,1,2}
        season= 'Winter'
    otherwise
        season= 'Not exist'
end



echon命令可以使M文件的命令在执行时可见,对于程序的调试和演示很有用。对于M文件中文本文件和函数文件,echo命令的作用稍有不同
echo on%打开文本文件的回应命令
echo off%关闭回应命令
echo file on%使指定的file文件的命令在执行中被显示出来
echo file off%关闭指定文件的命令在执行中的回应
echo file%文件在执行中的回应显示开关
echo on all%显示其后所有执行文件的执行过程
echo off all%关闭其后所有执行文件的显示

input命令:用来提示用户从键盘输入字符、字符串或表达式,并接受输入值

pause命令:用于程序暂时终止运行,等待用户按任意键后继续执行
pause           %暂停程序,等待回应
pause(n)       %在程序运行中等待n秒后继续执行
pause on      %显示其后的pause命令,并且执行pause命令
pause off      %显示其后的pause命令,但不执行该命令

keyboard命令:当程序遇到该命令时就暂停运行程序,处于等待键盘输入状态且在屏幕上显示字符K。键盘处理完毕后,输入字符串return,程序将继续执行。
例:判断是否是闰年

disp( 'please input a year:')
keyboard
leapyear(ans)

输入数字回车后,继续在命令行中输入return,控制权返回给MATLAB,即可判断输入年份是否是闰年


常用Debug方法:
  1. 在可能发生错误的M文件删去某些语句末行的分号,使其显示运行的中间结果。(利用return命令恢复程序的执行)
  2. 在M文件适当的位置加上keyboard命令,使其在执行到此处时暂停
  3. 注释掉M文件的函数定义行,使函数文件转变成脚本文件,这样在程序出错时,可以查看M文件产生的中间变量。注意,局部变量之间应避免冲突
  4. 使用MATLAB调试器设置断点,或单步执行

Set/Clear Breakpoint:设置或清除断点
Set/Modify Conditional Breakpoint:设置/修改条件断点
Enable/Disable Breakpoint:开启或者关闭当前行的断点


在同一幅图中画出多条曲线

使用hold on
 plot( )
plot()
plot()
...

hold off命令




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值