这个名字显然不是我取的,是货真价实的信科院课程。
【优雅】、【matlab】和【机器学习】,buff叠满了属于是。
当然,至少到目前(4.7),还停留在matlab的阶段,机器学习下周开始。
matlab基础
数据类型
整型:无符号整型和有符号整型
浮点型:single,double
取整函数:round,fix,floor,ceil
类型相同的数据才能运算
运算符、表达式
/(除或右除)
\(反除或左除)
^乘幂
'共轭转置
.* 矩阵乘或点乘
./ 矩阵除或点除
.\ 矩阵左乘或左除
.^ 矩阵乘幂或点乘幂
.' 转置 (矩阵行转换为列 ,复元素不做共轭)
~= 不等于
指数函数
取整函数和求余函数:
矩阵变换函数:
其他函数:
输入输出
分支结构
if 语句
if condition
Execute the statement
end
switch语句
switch 表达式
case 表达式1
语句1
case 表达式2
语句2
... ...
case 表达式n
语句n
otherwise
语句n+1
end
for 循环
#Example
s=0;
for i=1:2:12
s=s+i;
end
while 循环
Example:
s=0;
i=1;
while i <=12
s=s+i;
i=i+2;
end
匿名函数
Example:
fhandle=@(x,y)(x.^3+y.^3);
a=5;
b=8;
fhandle(a,b)
二维绘图
plot(x1,y1,'LineSpec1',x2,y2,'LineSpec2',...,xn,yn,'LineSpecn')
添加坐标标注、标题、网格以及标注的图形。
标注数据点
scatter(x,y,sz,c,mkr,'filled')
曲线
plot3(X1,Y1,Z1,'LineSpace',...)
条形图
y=random(10,1);
y=randn(10,6);
饼图
pie(x,explode,'label');
pie3(x,explode,'label');
子图
其他绘图
隐函数作图
课程作业
第一次作业:matlab脚本文件
输入长方形的长和宽,计算长方形的周长和面积并输出
l = input('输入长:');
w = input('输入宽:');
zc=2*l+2*w
s = l * w;
fprintf('%d',zc);
fprintf('%d',s);
输入三角形的三条边(要满足构成三角形的条件),求三角形的周长和面积
a = input('输入第一条边:');
b = input('输入第二条边:');
c = input('输入第三条边:');
if (a+b>c && a+c>b && b+c>a)
zc= a+b+c;
p = zc*0.5;
s = sqrt(p*(p-a)*(p-b)*(p-c));
else
fprintf('输入不正确');
end
fprintf('周长=%d ',zc);
fprintf(' 面积=%d',s);
输入一元二次方程的三个系数,求一元二次方程的根。
我的答案:
a = input('输入第一个系数:');
b = input('输入第二个系数:');
c = input('输入第三个系数:');
d=b*b-4*a*c;
if (d>=0)
x=((-1*b)+sqrt(d))/(2*a);
y=((-1*b)-sqrt(d))/(2*a);
fprintf('x1=%d ',x);
fprintf('x2=%d ',y);
else
fprintf('无实根');
end
给定半径,求球的体积和表面积。
r = input('输入半径:');
v=(4/3)*pi*r^3;
s= 4*pi*r^2;
fprintf('球的体积为:%d\n',v);
fprintf('球的面积为:%d',s);
输入三个数,将其按照从小到大的顺序排列。
a = input('输入第一个数:');
b = input('输入第二个数:');
c = input('输入第三个数:');
array = [a,b,c];
b=sort(array);
fprintf('%d',b);
第二次作业:分支语句
输入一个字符,如果是大写字母,输出其后继字符及其ASCII值,如果不是大写字母,原样输出。例如,输入字符B,输出“字母B的后继字符为C,对应的ASCII码值为67”,注意字母Z的后继字符为A。
ch=input('请输入一个字符:','s');
if ch>='A' && ch<'Z'
fprintf('字母%c的后继字符为%c,对应的ASCII码值为%d',ch,ch+1,ch+1);
elseif ch =='Z'
fprintf('字母%c的后继字符为%c,对应的ASCII码值为%d',ch,ch-25,ch-25);
else
fprintf(ch);
end
输入一个小于10000的整数,求出是几位数并且逆序输出。例如,输入123,输出“该数为3位整数,其逆序数为321”
r = input('输入一个整数:');
n=floor(log10(r))+1
a=floor(r/1000);
b=floor((r-1000*a)/100);
c=floor((r-1000*a-100*b)/10);
d=floor((r-1000*a-100*b-10*c)/1);
if n==4
fprintf('该数为%d位整数,其逆序数为%d%d%d%d\n',n,d,c,b,a);
elseif n==3
fprintf('该数为%d位整数,其逆序数为%d%d%d\n',n,d,c,b);
elseif n==2
fprintf('该数为%d位整数,其逆序数为%d%d\n',n,d,c);
elseif n==1
fprintf('该数为%d位整数,其逆序数为%d\n',n,d);
else
fprintf('输入格式错误');
end
在编辑窗口中:输入学生成绩,输出该成绩的等级。等级规定如下:[90,100]为A等,[80,90)为B等,[70,80)为C等,[60,70)为D等,[0,60)为E等
g = input('输入学生成绩:');
if (90<=g)&&(g<=100)
fprintf('成绩等级为A等');
elseif (80<=g)&&(g<90)
fprintf('成绩等级为B等');
elseif (70<=g)&&(g<80)
fprintf('成绩等级为C等');
elseif (60<=g)&&(g<70)
fprintf('成绩等级为D等');
elseif (0<=g)&&(g<60)
fprintf('成绩等级为E等');
else
fprintf('输入格式错误');
end
商场购物,100件以下,不优惠,100199件95折,200399件90折,400799件85折,8001499件80折,1500件以上,75折。输入所购货物的单价、件数,求实际付款数目。
p = input('输入货物单价:');
n = input('输入货物件数:');
if n<100
fprintf('实际付款为%d',n*p);
elseif (100<=n)&&(n<199)
fprintf('实际付款为%d',n*p*0.95);
elseif (200<=n)&&(n<399)
fprintf('实际付款为%d',n*p*0.9);
elseif (400<=n)&&(n<799)
fprintf('实际付款为%d',n*p*0.85);
elseif (800<=n)&&(n<1499)
fprintf('实际付款为%d',n*p*0.8);
else
fprintf('实际付款为%d',n*p*0.75);
end