一、 数据和变量:
省略号(三个英文句点):表示换行
历史指令调用:用方向键上下
数据显示格式:
format short
format long
format rational
复数: I,j
realmin:最小正实数
realmax:最大正实数
Inf:无穷大 eg:2/0
NaN:不定值 eg:0/0
二、 数组的输入与分析:
中括号[]表示矩阵,同行元素用逗号或空格分隔;不同用分号或回车分隔。
函数linspace(x1,x2,n)生成x1与x2间的n维等距行向量
编址:不能为0,按列编址;
冒号运算: eg;生成1到10,公差为2的等差数组:a=[1:2:10]
Length: 计算向量的尺寸
Size: 计算矩阵的尺寸
查看矩阵的某个元素:eg:A(2,3)表示2行3列的元素
矩阵元素的抽取:eg:A=[1 2 3; 4 5 6];
A(2,:)表示抽取矩阵第二行的元素
A(:,3)表示抽取矩阵第三列的元素
子矩阵的抽取:A([1,2],[2,3]) 表示抽取第一行下标为1,2的元素2,3和第二行下标为2,3的元素5,6
A(:)把矩阵A变成向量形式
更改向量的元素:eg: a(2)=6 把向量的第二元素改成6;
同理,改变矩阵的元素也一样,A(2,3)=7 二行三列的元素改为7;
拼接:eg: [A,B]把A矩阵和B矩阵按行方式进行拼接,如果逗号改为分号就是按列进行拼接
sum: 矩阵:列相加; 向量:全部相加
prod(乘积): 如果自变量是向量,求所有向量的乘积; 如果自变量是矩阵,求每一列的乘积;
min,max:如果自变量是向量,求所有向量的最小最大值; 如果自变量是矩阵,求每一列的最小最大值;
特殊矩阵
Zeros(m,n):零矩阵 ; ones(m,n):一矩阵 ; eye(m,n):单位矩阵
导入外部excel数据文件:
剪切板 + Array Editor
菜单import data
数组乘方:A.^K; K.^A:表示矩阵中的每一个元素以K为底,对应元素的次方形成的新矩阵
数组运算:A.*B,A./B; A-3(每个元素-3)
数学函数:
矩阵的数字函数是按元素运算
fix: 向0取整
ceil :向正无穷取整
rem:除法余数
real:复数实部
angle:复数幅角
log:自然对数 (ln)
floor:向负无穷取整
mod:模除求余
abs:绝对值
image:复数虚部
conj:复数共轭
log10:以10为底对数
eg:以2为底4的对数为2 ---log2(4)
逻辑运算:
any:至少有一个满足条件 all:必须全部满足条件
find:找到满足条件元素的下标
测试题:
a表示每一列的最小值
b表示每列最小值所在的行号
分号的作用:
不让表达式结果显示出来
两个语句分隔符
矩阵换行
三、字符串、元胞和结构
数据类型:
数值(Double):
逻辑(Logical):
字符(Char): a = \'清心明目\',b=a([4:-1:1]) 结果为: 目明清心
字符串的拼接:t=’好’, c=[a,t] 结果为 清心明目好
元胞(Cell):
结构(Structure):
字符串转化 num2str,str2num
第一章作业题
执行下列指令,观察运算结果,理解其意义
(1)[a,b]=min([10 20;30 4])
a的值是矩阵每一列的最小值,即10 4
b的值是矩阵最小值所在的行号
(2)[10 20;30 40]>=[40 30;20 10]
返回对应元素比较结果的值0,1
(3)find([10 20;30 40]>=[40 30;20 10])
返回的结果是将矩阵先转化为列向量再比较得到的位置
题中的矩阵变换为列向量为(10 30 20 40)T ,(40 20 30 10)T;
对应元素进行比较,结果为
(4)[x,y]= find([10 20;30 40]>=[40 30;20 10])
x是返回满足条件的元素所在行
y是返回满足条件的元素所在列
结果是
(5)linspace(3,4,5)
以3开始,以4结尾,分成5份
(6)fun=\'abs(x)\',x=-2,eval(fun),double(fun)
结果为:
eval函数将括号内的字符串视为语句并运行
double函数将字符串中每个字符的ASCII码返回
(7)本金k以每年n次,每次p%的增值率增加,当增加到rk时所花费的时间为
T=lnr/nln(1+0.01p), 用MATLAB表达式写出该公式并用下列数据计算:r=2,p=0.5,n=12.
(8)已知函数f(x)=x4 -2x 在(-2,2)内有两个根。取步长h=0.05,通过计算函数值求得函数的最小值点和两个根的近似解。(求近似根等价于求函数绝对值的最小值点)
第一种解法:
最小值:
x=-2:0.05:2;
f=x.^4-2.^x;
[fmin,min_index]=min(f) %fmin:最小值;min_index最小值点编址
x(min_index) %最小值点
近似解:
[f1,x1_index]=min(abs(f)) %求近似根
x(x1_index)
x(x1_index)=[]; f=x.^4-2.^x; %删去绝对值最小的点以求函数绝对值次小的点
[f2,x2_index]=min(abs(f)) %求另一近似根
x(x2_index)
第二种解法:
clear all;
fun=inline(‘x.^4-2.^x’,’x’);
[x,f]=fminbnd(fun,-2,2); %求最小值
%求零点
fzero(fun,[-2,0]);
fzero(fun,[0,2]);
PS:
iline函数用于定义函数
变量名=inline(‘matlab有效表达式’,’变量1’,’变量2’……)
请发表评论