3月13日更
matlab第二讲,今天内容较多,均为课上老师讲课,我对照PPT选择性记录,明天没课,分两次记录
round 最近的取整,就是四舍五入
ceil (天花板) 向上取整
floor (地板) 向下取整
fix 向0取整(-3.14→-3)
虚数部分:
complex(a,b) 创建以a为实部b为虚部的复数
直接写就行(不用“*”),例如1-2i
abs() 求模
Inf是infinity(1/0); NaN是Not a Number(0/0)
数据类型的一点特殊的地方是0和1会表示为false和true 在while、if等判断语句里都可以用,在c中要用bit定义变量,matlab还是和其他‘一样
类型转换 int8(),int16()什么的,single和double,
下面是例子
x=1;
y=single(x);
while x~=inf
x1=x;
x=x*1.01;
end
x1
while y~=inf
y1=y;
y=y*1.01;
end
y1
会输出
x1 =
1.7875e+308
y1 =
3.3835e+38
双精度更高一些
结构体问题,直接输入就行,和c差不多,例如:stu.num=100;stu.name='2333'
对于矩阵/是左 \是右
有.是做元素的运算,没有是做矩阵的运算
A\B 左除,方程A*X=B的解 A/B 右除 方程X*A=B的解
对于A^B,都为矩阵无意义;A为标量,B为正整数时,涉及到A和B相关的特征值和特征向量
关系运算符只针对两个相同长度的矩阵,或对其中之一时标量的情况进行运算。
关系运算只有0和1两种情况。以下是运行实例。
>> a=magic(3)
a =
8 1 6
3 5 7
4 9 2
>> b=4*ones(3)
b =
4 4 4
4 4 4
4 4 4
>> a>b
ans =
1 0 1
0 1 1
0 1 0
>> a>4
ans =
1 0 1
0 1 1
0 1 0
逻辑运算符 & | ~ Xor &和|接触过比较简单,~就是c中的!取反,用法完全一样,Xor,两个操作数相同时,运算结果为0;两个操作数不同时,运算结果为1;(什么时候0什么时候1容易混)
刚觉的和c完全一样就打脸了。。c中^包含了按位的功能,matlab中不包括,要用bitand、bitor、bitcmp(按位补)、bitxor进行按位运算
运算优先级:这个倒是和c一样,搞不清全用括号就行了。
对于'和.',只有'是对矩阵进行共轭转置(虚数虚部取反),.'只是转置(虚部不取反)
nargin是函数的输入参数个数;nargout是函数输出参数的个数;varargin是可变的输入参数个数;varargout可变的输出参数个数。之前接触过nargin怎么用,其他的不太清楚。
MATLAB中变量的命名规则,区分大小写,必须以字母开头,包含数字和下划线(这些之前都清楚);不过之前不明白的有:变量名命名的长度不超过31个字符,超过的字符,系统将忽略不计。
数组信息的获取部分,个人认为比较重要
isempty(A):该函数检测数组是否为空,如果为空,返回值为1,否则,返回值为0。
isscalar(A):检测数组是否为单个元素的标量。
isvector(A):检测数组是否为行向量或列向量。?
isrow(A):检测数组是否为行向量。
iscolumn(A):检测数组是否为列向量。 %对于只有一个元素的矩阵isrow(A)和iscolumn(A)都是1。
issparse(A):检测数组是否为稀疏矩阵。
find(A)返回矩阵A中非零元素所在位置
find(A>5)找出A中大于5的元素位置
sort(a)按列排序