我是靠谱客的博主 寒冷烧鹅,最近开发中收集的这篇文章主要介绍[Matlab]入门教程基础向笔记(B站视频)快捷操作计算细节运算符号一个基本的计算脚本if条件语句while循环语句for循环语句函数模块画图,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
[Matlab]入门教程基础向笔记(B站视频)
快捷操作
- clc:清除命令行窗口历史操作
- 用⬆(上箭头)表示快捷输入上一段代码
计算细节
- 矩阵相乘
A*B:表示现代中的相乘运算
A.B:表示各个数字分别相乘运算
例:A=[1 2 ;3 4]
B=[5 6;7 8]
AB=[13 16;13 16]
A.*B=[3 8;5 12]
- mod(x,y):求x,y相除的余数
运算符号
&&:并且
||:或者
非:~
一个基本的计算脚本
fprintf输出
x=input('please input x:');
y=input('please input y:');
fprintf('the answer is:%fn',x+y);
fprintf('the answer is:%g+%g=%gn',x,y,x+y);
please input x:1
please input y:2
the answer is:3.000000
the answer is:1+2=3
disp输出
disp('apple','banana','orange')
错误使用 disp
输入参数太多。
disp(['apple','banana','orange'])
applebananaorange
disp(['apple ','banana ','orange'])
apple banana orange
fr1='apple';
fr2='banbana';
fr3='orange';
disp([fr1,fr2,fr3])
applebanbanaorange
fr1='apple';
fr2='banbana';
fr3='orange';
disp([fr1,' ',fr2,' ',fr3])
apple banbana orange
if条件语句
a=input('a =');
b=input('b =');
c=input('c =');
delta=b^2-4*a*c;
if delta>0
x1=-b+sqrt(delta)/(2*a);
x2=-b-sqrt(delta)/(2*a);
fprintf('x1=%fnx2=%fn',x1,x2);
elseif delta==0;
x=-b/(2*a);
fprintf('x=%fn',x);
else delta<0;
fprintf('no solution');
end
a =1
b =1
c =-2
x1=0.500000
x2=-2.500000
!注意:
换行符为n,为右斜杠;
根号用sqrt()表示
while循环语句
i = 1;
s = 0;
while i <= 100;
i=i+1;
s=s+i;
end
disp(s)
5150
for循环语句
%求1-1/2+1/3-1/4+1/5....-1/100的和
s=0;
for i = 1:100;
if mod(i,2)==1;
s=s+1/i;
else
s=s-1/i;
end
end
disp(s)
0.6882
函数模块
- 计算a-b的总数
function
Untitled6( a,b )
%Untitled6为文件名,a,b为参数
s=0;
for i = a:b;
s=s+i;
end
disp(s)
end
调用方法:
Untitled6( 5,6 )
11
- 定义函数返回值,使其赋值
function result = Untitled7( a,b)
%注意,此时与上一段代码不同,定义了一个result 返回值
s=0;
for i = a:b;
s=s+i;
end
result=s;
%result为函数返回值
end
s1=Untitled7(1,3)
s1 =
6
s2=Untitled7(11,12)
s2 =
23
s1+s2
ans =
29
画图
- matlab每次使用plot时都会将上一次图形给覆盖掉
- 若想同时保留两张图,可在第一个plot后加上hold on
- 使用grid on 显示图像网格
- 添加标题使用title(’ ')
- 添加x,y轴标签:xlabel(’ ‘);ylabel(’ ')
x1 = -5:0.1:5;
y1 = x1.*x1;
plot(x1,y1);
hold on;
x2 = -5:0.1:5;
y2 = x2.^3;
plot(x2,y2);
grid on;
title('x^2 vs x^3');
xlabel('x');
ylabel('y');
简单的plot直线图
x = -3:0.1:3;
%表示x从步距为0.1,从-3到3
y = x.*x;
%注意为点乘,或者使用x.^2也为点乘
plot(x,y,'r-o') %'r-o'表示图形颜色为红色,在关键点上画圆
axis equal %表示直线坐标的xy轴间距相同
简单的直方图bar
>> x=2000:2005;
>> y=[10 15 20 22 23 25];
>> bar(x,y)
画一个简单3D图像:plot3
>> theta = 0 :pi/50 : 6*pi;
>> x = cos(theta);
>> y = sin(theta);
>> z = 0 :300;
>> plot3(x,y,z)
用subplot对画图区进行分块
subplot(a,b,[c,d]) %a,b表示分块方式,c,d表示定位
x = -4:0.1:4;
y1 = cos(x);
y2 = cos(2.*x);
y3 = cos(4.*x);
subplot(2,2,1);
plot(x,y1);
title('y = cos(x)');
subplot(2,2,2);
plot(x,y2);
title('y = cos(2x)');
subplot(2,2,[3,4]);
plot(x,y3);
title('y = cos(4x)');
surf曲面三维立体图
x = -3:0.1:3;
y = -3:0.1:3;
[X,Y] = meshgrid(x,y);
%取坐标上每一个x,y的值,赋值给X,Y
Z = X.^2+Y.^2;
surf(X,Y,Z); %画出X,Y,Z的三维图
做动画效果
做一个永动的sin曲线
X = -2*pi:0.1:2*pi;
Y = sin(X);
h = plot(X,Y); %将每一次的Y赋值给h
while true %当程序为真时,即表示永久运行
X = X+0.1; %X往右侧移动0.1的单位
Y = sin(X);
set(h,'XData',X,'YData',Y) %重新设置h,注意引号的使用和X,D为大写
drawnow; %强制把图像再画一遍
end
做一个永动的弹簧
theta = -10*pi:0.1:10*pi;
X = cos(theta);
Y = sin(theta);
Z=theta;
h = plot3(X,Y,Z);
%先画一个三维立体的图
axis([-1,1,-1,1,-40,40])
%将x,y,z轴固定起来,不随弹簧的变动而变动
while true
%while循环使其永久实现
for i = 1:100
Z = 0.98*Z;
set(h,'XData',X,'YData',Y,'ZData',Z);
drawnow;
end
%先使其收缩
for i = 1:100
Z = Z/0.98;
set(h,'XData',X,'YData',Y,'ZData',Z);
drawnow;
end
%再使其变大
end
做一个时钟的线
t = 0:pi/50:2*pi;
X = cos(t);
Y = sin(t);
plot(X,Y);
axis equal;
hold on;
lineX = [0 1];
lineY = [0 0];
h = plot(lineX,lineY);
theta = 0;
while true;
theta = theta+0.01;
lineX(2)=cos(theta);
lineY(2)=sin(theta);
set(h,'XData',lineX,'YData',lineY);
drawnow;
end
最后
以上就是寒冷烧鹅为你收集整理的[Matlab]入门教程基础向笔记(B站视频)快捷操作计算细节运算符号一个基本的计算脚本if条件语句while循环语句for循环语句函数模块画图的全部内容,希望文章能够帮你解决[Matlab]入门教程基础向笔记(B站视频)快捷操作计算细节运算符号一个基本的计算脚本if条件语句while循环语句for循环语句函数模块画图所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复