Matlab基础学习--------关系和逻辑运算及多项式运算

直接给出实例,实例中包含知识点的讲解:

%% 关系运算符
% <   <=    >    >=    ==    ~=(不等于)
% 比较魔方矩阵中大学元素的值大于4
% 魔方矩阵:矩阵的每行每列和两条对角线上的和都相等
a=magic(3)  %生成一个3*3的魔方矩阵
a>4*ones(3) %与全为4的矩阵进行比较
magic(6) %生成6*6的魔方矩阵
%运行结果:
% a =
%
%      8     1     6
%      3     5     7
%      4     9     2
% ans =
%
%      1     0     1
%      0     1     1
%      0     1     0
% ans =
%     35     1     6    26    19    24
%      3    32     7    21    23    25
%     31     9     2    22    27    20
%      8    28    33    17    10    15
%     30     5    34    12    14    16
%      4    36    29    13    18    11
%% 逻辑运算符
% &   &&    |    ||    ~(非)    xor(异或)
%% 关系与逻辑函数
% xor(x,y)异或运算
% any(x)如果x中有非0元素就返回1,否则返回0
% all(x)如果元素中所有元素非0则返回1,否则返回0
% isequal(x,y) x和y对应元素相等置1,否则置0
% ismember(x,y) 如果x是y的子集,相应的x元素置1,否则置0
% 具体实例
a=[1 2 -3 0 0 ]
b=[0 1 0 3 0]
xor(a,b)
%结果
% a =
%      1     2    -3     0     0
% b =
%      0     1     0     3     0
% ans =
%      1     0     1     1     0
any(a)
%结果
% ans =
%      1
all(a)
%结果
% ans =
%      0
isequal(a,b)
%结果
% ans =
%      0
a
b
ismember(a,b) %如果a元素是b元素的子集,相应的x元素置1,否则置0
%结果
% a =
%      1     2    -3     0     0
% b =
%      0     1     0     3     0
% ans =
%      1     0     0     1     1     对应a中的1,0,0都是b中的元素

%% 多项式运算
% Matlab将阶为n的多项式存储在长度为n+1的行向量中,元素为多项式的系数,按照x的幂降序排列
% 多项式运算函数
% polyval(p,x) 计算多项式p。如果x是一个标量则计算多项式在x点的值,如果x是一个矩阵或者向量则计算所有的值
p1=[2 3 -5];
p2=[3 0 0 -4];
polyval(p1,2)  %计算多项式在x=2时的值
%结果
% ans =
%      9

polyval(p1,p2)  %计算多个值
%结果
% ans =
%     22    -5    -5    15

%polyvalm(p,A) 直接对矩阵A进行多项式计算
% 举例
a=[1 2 3]; %多项式为x^2+2*x+3
A=[1 2;3 4]; %定义一个二维矩阵
polyvalm(a,A) %求结果
% ans =
% 12 14
% 21 33
% 其实相当于把A这个二维矩阵直接替换变量x,即求 A^2+2*A+3*E 这个矩阵多项式。

%poly(B)计算矩阵A的特征多项式向量
B=[1 2 3;4 5 6;7 8 9]
poly(B)
%结果
% B =
%      1     2     3
%      4     5     6
%      7     8     9
% ans =
%     1.0000  -15.0000  -18.0000   -0.0000

%poly(x1) 给出一个多项式系数,该多项式的解就是x1中的值
x1=[2 2 3 4];
poly(x1)
%结果
% ans =
%      1   -11    44   -76    48
%说明:结果表示多项式p(x)=x^4-11x^3+44x^2-76x+48.令p(x)=0,则解为2 2 3 4

% roots(p)  计算多项式p的根(结果可能为复数)
p=[ 1   -11    44   -76    48]
roots(p)
%结果
% p =
%      1   -11    44   -76    48
% ans =
%    4.0000 + 0.0000i
%    3.0000 + 0.0000i
%    2.0000 + 0.0000i
%    2.0000 - 0.0000i

%compan(p) 计算带有系数p的多项式的友矩阵,该矩阵的特征多项式为p
p=[1 2 3 4];
compan(p)
%结果
% ans =
%     -2    -3    -4
%      1     0     0
%      0     1     0

%conv(p,q) 计算多项式p和q的乘积,也可认为是p和q的卷积
p=[1,2,3]
q=[4 5 6 7 8]
conv(p,q)
%结果
% p =
%      1     2     3
% q =
%      4     5     6     7     8
% ans =
%      4    13    28    34    40    37    24

% [k,r]=deconv(p,q) 计算多项式p除q,k是商多项式,r是残数多项式,等价于p和q的逆卷积
q=[1,2,3]
p=[4 5 6 7 8]
[k,r]=deconv(p,q)
%结果
% q =
%      1     2     3
% p =
%      4     5     6     7     8
% k =
%      4    -3     0
% r =
%      0     0     0    16     8
时间: 2024-10-07 22:29:25

Matlab基础学习--------关系和逻辑运算及多项式运算的相关文章

Matlab基础学习--------多项式及其操作

直接上代码(其中包含详细的实例和注释) %% 多项式及其操作 % 使用poly2sym()函数来构造多项式 % 实例 构造多项式:2*x^6+3*x^5+4*x^4+8*x+1 A=[2 3 4 0 0 8 1]; poly2sym(A) % 结果 ans = 2*x^6+3*x^5+4*x^4+8*x+1 %多项式的根(即多项式表达式=0对应的x的值) % 实例 A=[2 3 4 0 0 8 1]; poly2sym(A) %构造多项式 x=roots(A) % 求多项式的根 % 结果 ans

Matlab基础学习------------------函数的极值、积分问题Matlab实现

<span style="font-size:18px;">% 函数的积分问题Matlab实现 %% 函数极值点 % 1.一元函数的极小值点 % 实例:求f(x)=x^3-x^2-x+1在区间[-2,2]的极小值点 [email protected](x)x.^3-x.^2-x+1 x=fminbnd(f,-2,2) %使用fminbnd()函数求解一元函数的极小值点,参数分别为f(x)和区间短点 y=f(x) %极小值点对应的函数值 %结果 % f = % @(x)x.^

Matlab基础学习--------函数句柄

函数句柄是Matlab的一种常见数据类型. 函数句柄创建使用 @ 或者 str2func()来生成函数句柄. >> %创建一个cos()函数句柄 >> %方法1:[email protected] >> [email protected] hcos = @cos >> %方法2:fh = str2func('cos') >> fh = str2func('cos') fh = @cos >> functions(hcos) %使用fu

Matlab基础学习----------------------函数插值

%% 函数插值 % 比较常用的是用于实现一维数据插值的interp1,用于实现二维数据插值的interp2,lagrange,newton插值 % 一维插值 % YI=interp1(X,Y,XI,'method') % 函数根据X和Y的值计算函数在XI处的值.X和Y已知长度相同,用来描述采样点的信息 % XI是一个向量或者标量,描述插值点 % YI是根据样本点和插值点求出的值 % 注意:XI的范围不能超过X的取值范围,否则会出现NAN错误 % method是插值方法 % 实例: x=-pi:0

Matlab基础学习----------------元胞数组

与架构数组类似,元胞数组也可以存放不同类型不同大小的数据,每个元素称为一个元胞(cell). (1)元胞数组的创建 三种方法:直接赋值法,利用函数cell()和利用{}直接创建元胞数组的所有单元. 实例: %1.直接赋值法 %通过赋值语句将值赋到单元数组的一个单元中,每次只能创建一个单元内容: %有两种赋值方法:内容索引法和单元索引法 %(1)内容索引法:赋值语句左边用大括号将单元的下表括起来,右边为单元内容 %实例:创建一个2*2的元胞数组 c{1,1}='this is a cell arr

Matlab基础学习------------------函数微分

<span style="font-size:18px;">% 函数微分 % 函数微分比函数积困难,积分描述函数的整体性质,微分描述函数在某一点的斜率 % 由于微分非常困难,应尽量避免数值微分,特别是对实验获得的数据进行微分,这种情况下 % 最好用最小二乘曲线拟合这种数据,然后对多项式进行微分 % 1.使用diff()求解数值微分 % diff(x) % x为向量,所得值为[x(2)-x(1),x(3)-x(2),x(4)-x(3)...] % x是矩阵,得到矩阵的差分 %

Matlab基础学习-----数据显示格式(设置)

使用format来控制显示格式,但这只是影响结果的显示,不影响其计算与存储.下面以1/3为例,对数据显示进行说明: format|format short          5位定点表示                                            0.3333 format long                15位定点表示                                                0.333333333333333 format

Matlab基础学习-----------Matlab求解常微分方程边值问题的方法

算法代码 solinit =bvpinit(linspace(0,4,5),[1 0]); % linspace(0,4,5)为初始网格,[1,0]为初始估计值 sol=bvp4c(@twoode,@twobc,solinit); % twoode与twobc分别为微分方程与边界条件的函数,solinit为结构 x=linspace(0,4); %确定x范围 y=deval(sol,x); %确定y范围 plot(x,y(1,:)); %画出y-x的图形 %定义twoode函数(下述代码另存为工

Matlab基础学习---------常用的数学函数实例学习

%% 求和函数 % 1.sum(x) 返回数组x所有值之和,x表示一个数组 % 实例 x=[1,2,3,4,5]; sum(x) %结果: % ans = % 15 % 2.sum(X) 返回矩阵X各列元素之和的矩阵 X=[1,2,3;4,5,6;7,8,9] sum(X) %结果: % X = % 1 2 3 % 4 5 6 % 7 8 9 % ans = % 12 15 18 % 3.cumsum(x) 返回一个数组x中元素累计和的向量 x cumsum(x) % 结果 % x = % 1