栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

matlab02-结构化程式与自定义函数

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

matlab02-结构化程式与自定义函数

一:script writing 1. 新建脚本

2.测试代码
for i=1:10
    x=linspace(0,10,101);
    plot(x,sin(x+i));
    print(gcf,'-deps',strcat('plot',num2str(i),'.ps'));
end
3.保存.m文件并运行(F5)

4.注释:% 5.section:%% 6.调试

二:Structured programming 1.操作符

常规:>、<、>=、<=、==

操作符含义
~=不等于
&&
| |
# python :!=  and or 
2.与python不同,matlab不严格要求缩进 3.条件语句
  1. if elseif else end
# python :if elif else
a=3;
if rem(a,2)==0
    disp('a is even')
else
    disp('a is odd')
end

  1. switch case case otherwise end
input_num=1;
switch input_num
    case -1
        disp('-1')
    case 0
        disp('0')
    case 1
        disp('1')
    otherwise
        disp('other value')
end

4.循环语句
  1. while end
n=1;
while prod(1:n)<1e100
    n=n+1;
end
% 1e100==1*10^100  
% prod(1:n)==n!
disp(n)

%计算1+2+3+...+999
n=1;
sum1=0;
while n~=1000
    sum1=sum1+n
    n=n+1
end
sum1


注:matlab没有+=符号; python有+=没有++

  1. for end
for n=1:10
    a(n)=2^n;
end
disp(a)

5.为变量预宣告位置,可以减少寻找位置的时间

tic——toc:计算程序运行的时间

tic
for ii=1:2000
    for jj=1:2000
        A(ii,jj)=ii+jj;
    end
end
toc
tic
A=zeros(2000,2000);
for ii=1:2000
    for jj=1:2000
        A(ii,jj)=ii+jj;
    end
end
toc


6.练习

1.把矩阵A复制到矩阵B

A=[0 -1 4;9 -14 25;-34 49 64];
B=zeros(3,3);
for ii=1:3
    for jj=1:3
        B(ii,jj)=A(ii,jj);
    end
end
disp(B);


2.将矩阵B中的负数改为正数

for ii=1:9
    if B(ii)<0
        B(ii)=-B(ii);
    end
end
disp(B);

7.tips

1.换行:…
2.终止运行中的脚本:ctrl+c

三:User-defined function

一个function相当于编写好的一个能够实现某个功能的.m脚本文件
1.查看某个function对应脚本文件的位置(文件名与方法名相同)

which('mean.m');


2.编写程式
function outputs=functionName(inputs)

  1. freebody(自由落体运动求位移)
function x=freebody(x0,v0,t)
x=x0+v0.*t+1/2*9.8*t.*t;
%注意,为了实现多组数据同时计算,即每个参数以向量的形式传入,这里需用点乘
%对应位置相乘


  1. acc(算物体加速度和力)
function [a F]=acc(v2,v1,t2,t1,m)
a=(v2-v1)./(t2-t1);
F=m.*a;


3.内置参数

nargin:传入参数的个数
nargout:传出参数的个数

4.function handle
functionName=@(inputs)包含inputs的算术式
functionName指向后面这个function

f=@(x)exp(-2*x);
x=0:0.1:2;
plot(x,f(x));%画出e^-2x图像,x属于(0,2)


5.练习:已知华氏温度求摄氏温度

function C=F2C()
F=input('请输入华氏温度');
while isempty(F)==0
    C=(F-32)*5/9;
    disp(C);
    F=input('请输入华氏温度');
end

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/317178.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号