结构化程序与自定函数

今天睡了14个小时,真的很舒服,好久没这么爽了,嘿嘿(*?|?∀?|?*~●

结构化程序与自定函数

if else

a=3;
if rem(a,2)==0
    disp(‘a is even‘)
else
    disp(‘a is odd‘)
end

switch

input_num=1;
switch input_num
    case -1
        disp(‘negative 1‘);
    case 0
        disp(‘zero‘);
    otherwise
        disp(‘other value‘);
end

while

n=1;
while prod(1:n)<1e100
    n=n+1;
end

for

for variable=start:increment:end

commands

end

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

clear all 清除所有的历史数据

close all 关闭所有的数据

clc 清屏

... 换行

ctrl+c 终止程序

edit(which(‘mean.m‘)) 获取内建的函数

>> edit(‘mean.m‘);

自定义函数

function x=freebody(x0,v0,t)
x=x0+v0.*t+1/2*9.8*t.*t;

点乘和乘的区别

乘是矩阵的运算,点乘是矩阵中相同位置元素的乘法运算

在自定义函数中使用点乘可以同时算出多组数据

>> freebody([0,9],[2,7],[2,3])

ans =

   23.6000   74.1000

建立多个输入和输出的函数

function [a,F]=freebody(v2,v1,t2,t1,m)
a=(v2-v1)./(t2-t1);
F=m.*a;

[a F]=freebody(20,10,5,4,1)

a =

    10

F =

    10

function handle

基础绘图

line types

solid line -

dashed line --

dash-dotted line -.

dotted line :

hold on
x=0:pi/10:2*pi;
y1=sin(x);
y2=x;
plot(x,y1,‘:or‘,x,y2,‘--+g‘);
hold off
hold on
x=0:0.5:4*pi;
y=sin(x);
hh=tan(x);
h=y./hh;
w=1./(1+exp(-x));
g=(1/(2*pi*2)^0.5).*exp((-1.*(x-2*pi).^2)./(2*2^2));
plot(x,y,‘bd-‘,x,h,‘gp:‘,x,w,‘ro-‘,x,g,‘c^-‘);
%添加标识
legend(‘sin(x)‘,‘cos(x)‘,‘Sigmoid‘,‘Gauss function‘);
%添加标题和坐标
title(‘标题‘);
xlabel(‘t=0to2\pi‘);
ylabel(‘value‘);
hold off

text() 可用该函数在图形中指定的位置上显示字符串。

annotation() 添加注释、箭头、文本框等,默认坐标为0-1的归一化坐标

hold on
x=linspace(0,3);
y=x.^2.*sin(x);
plot(x,y);
line([2,2],[0,2^2*sin(2)]);
%积分符号 \int  下标_{0} 上标{1}
str=‘$$ \int_{0}^{2}\sin(x) dx $$‘;
%以LaTeX表示法表示str,0.25表示x的坐标,2.5表示y的坐标
text(0.25,2.5,str,‘Interpreter‘,‘latex‘);
%[0.32,0.5]是代表箭头在x坐标的位置,[0.6,0.4]是代表箭头在y坐标的位置,都要归一化,x乘3,y乘4
annotation(‘arrow‘,‘X‘,[0.32,0.5],‘Y‘,[0.6,0.4]);
hold off

get() 获得句柄handle 详情https://ww2.mathworks.cn/help/matlab/ref/get.html

gca() return the handle of the "current" axes

gcf() return the handle the "current" figure

hold on
x=linspace(0,2*pi,1000);
y=sin(x);
plot(x,y);
h=plot(x,y);
get(h);
hold off

set(句柄,属性名1,属性值1,属性名2,属性值2,…) 设置句柄handle

set(gca,‘Xlim‘,[0,pi]);

除了上面的方法可以设置handle,下面的方法也可以

xlim([0,2*pi]);
ylim([-1.2,1.2]);
%改变坐标的大小
set(gca,‘FontSize‘,25);
%tick 设置几个刻度的意思
set(gca,‘XTick‘,0:pi/2:2*pi);
set(gca,‘XTickLabel‘,0:90:360);
%gca是针对坐标轴的改变
%改变线的样式 set(线的名称;样式;目标值,···);
set(h,‘LineStyle‘,‘-.‘,‘LineWidth‘,7.0,‘Color‘,‘g‘);

figure(‘Position‘,[left,bottom,width,height]);

多张图画在一张图上

只有一个figure    subplot(row,column,1);

x=-10:0.1:10;
y1=x.^2-8;
y2=exp(x);
%可以表示写position,也可以不写
figure(‘Position‘,[300,100,500,500]),plot(x,y1);
figure,plot(x,y2);
t=0:0.1:2*pi;
x=3*sin(t)./tan(t);
y=sin(t);
subplot(2,2,1);plot(x,y);axis normal;
subplot(2,2,2);plot(x,y);axis square;
%axis equal x轴上一格距离大小与y轴上一格距离大小一致
subplot(2,2,3);plot(x,y);axis equal;
subplot(2,2,4);plot(x,y);axis equal tight;

axis off 关闭最后画的一个图的坐标

axis on 打开最后画的一个图的坐标

box off 关闭最后画的一个图的上边线和右边线

box on 打开最后画的一个图的上边线和右边线

grid off 关闭最后一个画的图的栅格

grid on 打开最后一个画的图的栅格

>>box off
>> grid on

 进阶绘图

plotyy() 双y轴函数

hold on
x=0:0.01:20;
y1=200*exp(-0.05*x).*sin(x);
y2=0.8*exp(-0.5*x).*sin(10*x);
%下面的式子返回三个参数,ax是坐标轴的句柄,ax(1)是左边的纵轴,ax(2)时右边的纵轴
[ax,h1,h2]=plotyy(x,y1,x,y2);
set(get(ax(1),‘Ylabel‘),‘String‘,‘Left Y-axis‘);
set(get(ax(2),‘Ylabel‘),‘String‘,‘Right Y-axis‘);
title(‘Labeling plotyy‘);
set(h1,‘LineStyle‘,‘--‘);
set(h2,‘LineStyle‘,‘:‘);
plotyy(x,y1,x,y2);
hold off

randn()是均值为0方差为1的正态分布

hist(y,m) m是一个标量,表明使用m个箱子

hold on
y=randn(1,1000);
subplot(2,1,1);
hist(y,10);
title(‘Bins=10‘);
subplot(2,1,2);
hist(y,50);
title(‘Bins=50‘);
hold off

bar

hold on
x=[1 2 5 4 8];
y=[x;1:5];
subplot(1,3,1);bar(x);title(‘A bargraph of vector x‘);
subplot(1,3,2);bar(y);title(‘A bargraph of vector y‘);
subplot(1,3,3);bar3(x);title(‘A 3D bargraph‘);
hold off

详情https://www.mathworks.com/help/matlab/ref/barh.html

pie chart

hold on
a=[10 5 20 30];
subplot(1,3,1);pie(a);
subplot(1,3,2);pie(a,[0,0,0,1]);
subplot(1,3,3);pie3(a,[0,0,0,1]);
hold off

polar chart

hold on
x=1:100;
theta=x/10;r=log10(x);
subplot(1,4,1);polar(theta,r);
theta=linspace(0,2*pi);r=sin(4*theta);
subplot(1,4,2);polar(theta,r);
theta=linspace(0,2*pi,6);r=ones(1,length(theta));
subplot(1,4,3);polar(theta,r);
theta=linspace(0,2*pi);r=1-sin(theta);
subplot(1,4,4);polar(theta,r);
hold off

原文地址:https://www.cnblogs.com/zuiaimiusi/p/11291770.html

时间: 2024-10-12 17:40:29

结构化程序与自定函数的相关文章

Oracle学习笔记十二 子程序(存储过程、自定函数)和程序包

子程序 子程序:命名的 PL/SQL 块,编译并存储在数据库中. 子程序的各个部分: 1.声明部分 2.可执行部分 3.异常处理部分(可选) 子程序的分类: 1.过程 - 执行某些操作 2.函数 - 执行操作并返回值 子程序的优点: 模块化 将程序分解为逻辑模块 可重用性 可以被任意数目的程序调用 可维护性 简化维护操作 安全性 通过设置权限,使数据更安全 存储过程 过程是用于完成特定任务的子程序. 例如: 一个购票过程可以分为很多个子过程,分别完成. 创建存储过程 创建过程的语法: CREAT

Unity3d 解析文本执行已注册的自定函数

最近有个需求是想让程序解析策划编辑一个文本生成一段CG,内容使用大致是这样 cgSetCameraEx(118.6324,30.71189,75.55666,45,-45,0,0) cgCloneMyPlayer(1) cgSetPosDir(1,109,80,0) cgSetCameraEx(114.18,23.17,96.9,11.51974,-61.49661,-3.384705,3.5) cgCreateActor(2,25,108,100,90) cgWait(0.2) cgMove(

UDF 编写自定函数

在Mysql的官方文档中有说明如何给Mysql添加新的函数. 添加的函数可分为3种: 1.自行编写函数的源码,将源码编译成动态库,然后使用Mysql的CREATE FUNCTION语句来将函数添加进Mysql. 2.在源码等级上加入自行编写的函数,这样编译之后,新加入的函数就和Native函数一样,永久使用. 3.通过SQL语句脚本来完成函数的功能. 就这3中方式,第三种明显不足以完成我们所需要的业务工作,因为SQL语句不存在连接缓存的功能.第二种方法看似美好, 但是对于需要更换缓存方法(从re

mysql自定函数

一.基本语法 delimiter 自定义符号 -- 如果函数体只有一条语句, begin和end可以省略, 同时delimiter也可以省略 create function 函数名(形参列表) returns 返回类型 -- 注意是retruns begin 函数体 -- 函数内定义的变量如:set @x = 1; 变量x为全局变量,在函数外面也可以使用 返回值 end 自定义符号 delimiter ; 二.示例 -- 自定义函数 delimiter $$ create function my

sql 优化 -- sql中的自定函数

Long run sql: MERGE INTO INTITMRTNPARAM D USING ( SELECT A.INRFILENM,A.INRSTAT,A.INRDEPCD,A.INRITMCD,A.INRSUBCD,A.INRSUPCD,A.INRSTOCD FROM INTITMRTNPARAM A,INTITMRTNPARAM B WHERE 1=1 AND A.ROWID <> B.ROWID AND A.INRFILENM = B.INRFILENM AND A.INRSTAT

python_字符_函数

一.字符集和字符编码 1.定义 计算机中储存的信息都是用二进制数表示的,而我们在屏幕上看到的英文.汉字等字符是二进制数转换之后的结果.通俗的说,按照何种规则将字符存储在计算机中,如'a'用什么表示,称为"编码":反之,将存储在计算机中的二进制数解析显示出来,称为"解码",如同密码学中的加密和解密.在解码过程中,如果使用了错误的解码规则,则导致'a'解析成'b'或者乱码. 字符(Character):是一个信息单位,在计算机里面,一个中文汉字是一个字符,一个英文字母是

马哥教育第十三天系统启动流程、grub、模块、bash函数

kernel的功能:进程管理.文件系统.硬件驱动.内存管理.安全功能:SELinux.网络子系统,标准库:glibc 进程是运行在cpu上但用户进程受控于内核,用户进程需要完成特权指令时将触发软中断由用户模式转为内核模式,由内核代为执行特权指令并把结果返回给用户进程. Linux为单内核体系结构但是它支持模块化,模块还可以动态装载或卸载,Linux内核:核心 + 外围模块 核心:/boot/vmlinux-VERSION-release 模块:/lib/modules/VERSION-relea

PHP100-第五讲 PHP5.4 的while / for / break / continue、PHP5.4 的系统函数和自定义函数

PHP5.4 的while / for / break / continue.PHP5.4 的系统函数和自定义函数 论坛交流:http://bbs.php100.com/read-htm-tid-150407.html PHP5.4 的while / for / break / continue 在PHP编写代码时,我们经常需要让相同的代码块运行很多次.这时候就可以在代码中使用循环语句来完成这个任务.PHP的循环结构类似C中模式,有while.do-while.for PHP5.4 的系统函数和

为什么 构造函数、内联函数、静态函数和友元函数不能是虚函数

构造函数为什么不能是虚函数 C++ 从存储空间角度,虚函数对应一个指向vtable虚函数表的指针,这大家都知道,可是这个指向vtable的指针其实是存储在对象的内存空间的.问题出来了,如果构造函数是虚的,就需要通过vtable来调用,可是对象还没有实例化,也就是内存空间还没有,怎么找vtable呢?所以构造函数不能是虚函数.简单来说就是:虚函数的执行依赖于虚函数表.而虚函数表在构造函数中进行初始化工作,即初始化vptr,让他指向正确的虚函数表.而在构造对象期间,虚函数表还没有被初始化,将无法进行