概述
sin根号PI计算:
sin(3.14^0.5)
ans =
0.9798
数据类型
matlab的变量不需要声明数据类型
默认类型为double
常用命令:
查看变量类型命令:
whos
查看关键字的命令:
iskeyeword
matlab中的函数可以直接用:
类型转换:
format long
>> pi
ans =
3.141592653589793
分号----matlab中的分号表示不用显示运算结果
clear---->清除工作空间的所有变量
clc-------->清空命令窗口
常量
这个些预定义值存储在一般的变量中,所以他们能被覆盖或改写。如果一个新值赋值于
运算符
分号标识不要让结构显示在命令行窗口
变量初始化
关键字初始化:
input:
1,输入数值型数据----input只需要一个参数
n=input('')
2,输入字符串数据----input需要第二个参数--‘s’
str=input('','s')
向量
a=[1 2 3 ]
寻找向量元素:
向量下标从1开始,不是从0,也不可以是负数
行数同列数
矩阵(数组):
数组和矩阵的区别
数组中的元素可以是字符等
矩阵中的只能是数
二者联系主要体现在:在Matlab中,矩阵是以数组的形式存在的。因此,一维数组相当于向量;二维数组相当于矩阵。所以矩阵是数组的子集。
注意:matlab数组的下标是从1开始,不是从0开始
matlab中的矩阵,行元素的分隔符是空格,列的分割是分号,
a=[1 2;3 4]
a =
1 2
3 4
寻找矩阵元素:
1:
a(1,2)//逗号分隔找向量
ans =
2
2:
a(2)
ans =
3
原理:
3:
arr=[1 2 3;4 5 6;7 8 9]
arr =
1 2 3
4 5 6
7 8 9
>> arr([1 3])
ans =
1 7
4:
arr([1 2;2 3])//每一个都是下标,分号是找出来符号的分隔
ans =
1 4
4 7
5:
arr =
1 2 3
4 5 6
7 8 9
arr([1 3],[2 3])/前面两个表示向量位置,后面量表示列数,取交叉数
ans =
2 3
8 9
矩阵相乘:
a=[1 2;3 4]
b=[2 3 4;3 4 5]
a*b
ans =
8 11 14
18 25 32
数组元素的访问
小括号,不同于C
数组中包含数组元素或者表达式
矩阵元素替换:
指定元素位置,赋值就可以
arr =
1 2 3
4 5 6
7 8 9
>> arr(1,1)=100
arr =
100 2 3
4 5 6
7 8 9
怎么输入一个连续长矩阵:
用分号
b=0:10
b =
0 1 2 3 4 5 6 7 8 9 10
间隔输出第一位:
g=1:5:20
g =
1 6 11 16
矩阵的声明和初始化:
A=zeros(10)
A =
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
>>
B=zeros(5,5)
B =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
>>
子数组
单独的:在行上,标识获取原数组行数
单独的:在列上,标识获取原数组列数
arr2(:,1:2:3)标识行获取所有行为3,列为1和3列
向量合并:
a=[1 2 3 4]
a =
1 2 3 4
>> b=[4 5 6 7]
b =
4 5 6 7
>> f=[a b]
f =
1 2 3 4 4 5 6 7
矩阵合并:
c=[1 2;3 4]
c =
1 2
3 4
>> d=[12 23;34 43]
d =
12 23
34 43
>> h=[c d]
h =
1 2 12 23
3 4 34 43
数组和矩阵运算
注意:
数组用于运算数组的行和列必须相同,否则产生错误
矩阵用于运算的行必须相同
运算:
数组加数组:
对应元素对应相加
标量加数组:
标量和每个元素相加
减法运算
减法原理同上
数组乘法
对应元素相乘即可
数组除法
对应元素相除即可
矩阵乘法
原理:
第一个数组决定行,第二个数组决定列,第一个每一行的元素对应乘以第二个的每一列的元素,相加,为一个结果元素
a =
1 2
3 4
>> b=[2 3 4;3 4 5]
b =
2 3 4
3 4 5
>> a*b
ans =
8 11 14
18 25 32
有点的是数组,没有点的是矩阵
运算符的优先级
注释:
%:单行注释
%%
.......
两个%%下面是代码块
换行:
...
三点是换行
关键字:
input---初始化
关系运算符:
tic--toc:
简单地说,tic和toc是用来记录matlab命令执行的时间
tic用来保存当前时间,而后使用toc来记录程序完成时间。
两者往往结合使用,用法如下:
tic
operations
toc
显示时间单位: 秒
算术运算符:
.*”和“*”的区别:
在进行数之间的运算时“.*”和“*”是没有区别的,都是表示普通的乘法运算。例:m = 2,n = 3,m.*n = 6, m*n = 6。
在进行矩阵之间的运算时“.*”和“*”的意义就有所不同了。假设a,b表示两个矩阵,a*b表示矩阵a与矩阵b进行矩阵相乘,a.*b表示矩阵a中的元素与矩阵b中的元素按位置依次相乘,得到的结果将作为新矩阵中相同位置的元素。
*为矩阵乘法,若A为m*n维矩阵,B为n*p维矩阵,则A*B为m*p维矩阵
.*为点乘运算,是指两个矩阵中对应元素进行乘法运算。要求两个矩阵维数相同
MATLAB 中用一个特殊的符号来区分矩阵运算和数组运算。在需要区分两者不同的时侯,把点置于符号前来指示这是一个数组运算(例如, .*)。线面给出的是一些常见的数组和矩阵运算。
数组加法:A+B,数组加法和矩阵加法相同。
数组减法:A-B ,数组减法和矩阵减法相同。
数组乘法:A.*B,A 和 B 的元素逐个对应相乘,两数组之间必须有相同的形,或其中一个是标量。
矩阵乘法:A*B,A 和 B 的矩阵乘法,A 的列数必须和 B 的行数相同。
数组右除法:A./B,A 和 B 的元素逐个对应相除:A(i,j)/B(i,j)两数组之间必须有相同的形,或其中一个是标量。
数组左除法:A.B,A 和 B 的元素逐个对应相除:B(i,j)/A(i,j)两数组之间必须有相同的形,或其中一个是标量。
矩阵右除法:A/B 矩阵除法,等价于 A*inv(B), inv(B)是 B 的逆阵。
矩阵左除法:AB 矩阵除法,等价于 inv(B)*A, inv(A)是 A 的逆阵。
数组指数运算:A.^B,AB中的元素逐个进行如下运算:A(i,j)^B(i,j),A(i,j)/B(i,j)两数组之间必须有相同的形,或其中一个是标量。
数据类型:
字符串和字符都是单引号括起来
默认类为doblue
字符串相加:
s1='aaaaaa'
s1 =
aaaaaa
>> s2='bbbbb'
s2 =
bbbbb
>> s3=[s1 s2]
s3 =
aaaaaabbbbb
>>
s4=[s1;s2]
错误使用 vertcat
串联的矩阵的维度不一致。
>> s5='ccccc'
s5 =
ccccc
>> s4=[s2;s5]
s4 =
bbbbb
ccccc
>>
字符串中找元素:
s1(1)
ans =
a
变量定义:
利用sym或者syms定义一个变量
sym方式定义:x=sym('x')
syms方式定义:syms x
定义了变量(自变量)之后,就可以直接利用自变量直接定义函数
y=x^2+x+1
matlab中的函数:
画图
画表达式:y=x^2-10*x+15的函数
定义域:
x=0:1:10
Y值:
y=x.^2-10*x+15
输出图像函数:
plot(x,y)
matlab常见函数
给图像增加坐标轴标签,题目和网格线--grid on
x=0:1:10;
y=x.^2-10*x+15;
plot(x,y);
title ('Plot of y=x.^2-10*x+15');
xlabel ('x');
ylabel ('y');
grid on;
同一坐标内作多个函数图像
一个x,多个y,plot中有几组图像就设置几组x,y
x=0:1:10;
y1=x.^2-10*x+15;
y2=sin(2*x);
y3=3*cos(2*x);
plot(x,y1,x,y2,x,y3)
title('y-x');
xlabel('x');
ylabel('y');
grid on
多图像叠加---hold on / hold off
关系运算符:
注意:
=:是赋值运算符
==:是等于运算符
也要注意不等于运算符 ,不同于其他补充语言
逻辑运算符
逻辑函数
分支语句
注意:这些关键字的后面的条件语句没有括号
还要注意for,if和while都是最后以end结尾
matlab的输出函数:
disp()
注意:matlab中的字符串是单引号括起来
if
1:elseif是连续的,不分开
2:每一个语句块都不用括号阔来,只需要对其
3:注意所有的对齐,比如最后的end如果是和最后的语句块对齐,那就属于语句,就不是IF的结束了
4:if语句可以嵌套,但是每一层的if都要有end结束
a=1;
b=2;
c=3;
if a<b
a=a+b;
a
elseif a<c
a=a+c;
a
else a
end
循环结构
while
while expression
...
... code block
...
end
for循环:
注意n不用++,因为:就已经指定了变量从哪里到哪里
variable的值有几个就执行循环体几次
给Variable赋值的形式:
for ii = 1:10 %执行10次
Statement 1
...
Statement n
end
for ii = 1:2:10
Statement 1
...
Statement n
end
%执行5次
for ii = [5 9 7]
Statement 1
...
Statementn
end
%数组中的元素有三个,所以会被执行3次
variable的值不要轻易修改
variable的值是每一次循环赋给它的值
for循环也可以进行嵌套
次方:
1e100:
是1乘与1的100次方
2的10次方字母表示:
2^10
switch语句:
特点:
1,switc之后有括号
2,”case 语句“后面的逗号要不要都可以
3,otherwise后面也可以直接加逗号
switch的第一种形式:
一个case 对应一个值
a=10;
switch(a)
case 10
disp('10');
case 100
disp('100');
case 1000
disp('1000');
otherwise
disp(a);
end
一个case对应多个值:
a=10;
switch(a)
case {10,100},
disp('10~100');
case 100
disp('1000');
case 1000
disp('10000');
otherwise
disp(a);
end
break和continue
matlab中也可以使用break和continue,作用和其他语言一样
try...catch
用于捕捉MATLAB程序的错误
函数:
输出函数
输出字符串函数
disp('要输出的字符串');
eg:
a=1;
b=2;
c=3;
if a<b
a=a+b;
disp('b is the most.');
elseif a<c
a=a+c;
disp('c is the most.');
else disp('a is the most');
end
函数表示:
q(n)=......
q(x,y)=x+y
函数定义(自定义函数):
这个不是定义函数表达式
首先创建一个m文件;
Matlab函数定义格式,用关键字function定义函数
function [输出变量] = 函数名称(输入变量)
eg:
function [ result ] = test(a,b)
result=a+b;
end
”,其中test是函数名,result 是返回结果,a和b是输入参数,
end函数
返回数组下标最大值
eye(a,b)
建立一个数组,a行b列,对角为1
solve(y,x);
解方程
也可以用来解方程组
syms x y %注意,变量之间的间隔用空格
eq1=4*x^2+x;%不显示要用冒号
eq2=2*x^2+4*x+1;
A=solve(eq1,eq2,y,x)
A.x
A.y
微分计算:
step()
1,step(分子矩阵,分母矩阵)
2,
功能:显示函数的图像(求系统的单位冲激响应)
eg:
1,
num=[12];
den=[1 2 10];
step(num,den)
2,
num=[12];
den=[1 2 10];
g=tf(num,den);
step(g)
可以获取step的返回值
[u,t]=step(g)
[y,x]=max(u)
impulse
功能:求系统的单位阶跃响应
sys = tf([2, 1],[1, 4, 3]);
t = 0:0.1:10;
y = impulse(sys, t);
plot(t, y);
max()
Matlab中max函数在矩阵中求函数大小的实例如下:
(1)C = max(A)
返回一个数组各不同维中的最大元素。
如果A是一个向量,max(A)返回A中的最大元素。
如果A是一个矩阵,max(A)将A的每一列作为一个向量,返回一个行向量,向量的第i个元素是矩阵A的第i列上的最大值。
如果A是多维数组,max(A) treats the values along the first non-singleton dimension as vectors, returning the maximum value of each vector.
(2)[Y,U]=max(A):返回行向量Y和U,Y向量记录A的每列的最大值,U向量记录每列最大值的行号。
(3)max(A,[],dim):返回A中有dim指定的维数范围中的最大值。
dim取1或2。
dim取1时,[Y,I]=max(M,[],1), 在第1维方向上取最大值,也就是每列最大值,结果存在Y里,I里存的是每列最大值的行位置。
该函数和max(A)完全相同;
dim取2时,[Y,I]=max(M,[],2), 在第2维方向上取最大值,也就是每行最大值,结果存在Y里,I里存的是每行最大值的列位置。
该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大值。
求最小值的函数是min,其用法和max完全相同。
dcgain();
dcgain()函数用来求系统的终值
steadyErr=dcgain(g)
最后
以上就是慈祥皮卡丘为你收集整理的matlab数据类型常用命令:常量运算符变量初始化向量矩阵(数组):子数组向量合并:矩阵合并:数组和矩阵运算运算符的优先级注释:换行:关键字:关系运算符:tic--toc:算术运算符:数据类型:变量定义:matlab中的函数:matlab常见函数给图像增加坐标轴标签,题目和网格线--grid on多图像叠加---hold on / hold off关系运算符:分支语句循环结构次方: 函数:end函数微分计算:的全部内容,希望文章能够帮你解决matlab数据类型常用命令:常量运算符变量初始化向量矩阵(数组):子数组向量合并:矩阵合并:数组和矩阵运算运算符的优先级注释:换行:关键字:关系运算符:tic--toc:算术运算符:数据类型:变量定义:matlab中的函数:matlab常见函数给图像增加坐标轴标签,题目和网格线--grid on多图像叠加---hold on / hold off关系运算符:分支语句循环结构次方: 函数:end函数微分计算:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复