Matlab小结2(函数)

代码最后一句不能加分号 ; 不然不出结果

simplify函数:
化简,例一z= (x^2 y + yx - x^2 -2x)/(x^2 (x^3-x(x+1)(x-1))y);simplify(z)输出结果-(x - y - xy + 2)/(x^2y);例二 f=x+x^2 +2x+5x^2;simplify(f)输出3x*(2*x + 1)

collect函数
合并同类项,同上例一collect(z)结果((y - 1)x + y - 2)/(yx^2),例二collect(f)结果是 6x^2 + 3x

numden函数
写法[n,d]=numden(z),提取分子分母,n分子,d分母

expand函数
将多项式展开,若有分母则化为多个单项式,同上例1/x - 2/(x^2y) - 1/(xy) + 1/x^2

factor函数
factor(z)因式分解,输出一包含所有因子的行向量,同上例[y - x + x*y - 2, 1/x, 1/x, 1/y],z也可以为数字,因子为素数

prod函数
prod(z)若z为行向量,返回行向量的乘积,若A为矩阵,则返回每列所有元素的乘积,用一行向量表达。例一同上输出[y - x + x*y - 2, 1/x, 1/x, 1/y],例二A=[1:3;4:6];prod(A)结果为4 10 18
prod(z,2)与上面相反,返回每行所有元素乘积

subs
sub(f,x,z)用z替换f(x)中的x,其中x,z可以为多项式,替换后保持原形式不化简,括号保留

latex函数
latex(z)其中z多项式,输出LaTex表达z的代码

取整函数
floor(x)向下取整
ceil(x)向上取整
round(x)先四舍五入再加正负,x可以是矩阵
fix(x)向0的方向取整
[n,d]=rat(x)用化为有理数形式,n分子d分母
a=rem(x,y)取余数当正数与负数取余时,当得到的余数结果的符号希望跟被除数(x)一样,用rem()函数;当得到的余数结果的符号希望跟除数(y)一样,用mod()函数
k=gcd(m,n)求最大公约数
k=lcm(m,n)求最小公倍数

primes()
primes(x)求小于等于x的所有质数
perms函数
perms(x)输出x的全排列,例一P=perms(‘abcde’),size( P)输出abcde的全排列即A55共120,size( P)=120 5表示5个字符120种;例二Q=perms(‘a b cd e’),size(Q)全排列A88=40320,因为空格符也算;例三P=perms(1:5),size( P)结果和例一相同

循环
for和while同c++,{省略,}用end代替,之后再写输出的变量,例如对 1到100求和s1=0;
for i=1:100
s1=s1+i;
i=i+1;
end
s1

s2=0;
i=1;
while(i<=100)
s2=s2+i;
i=i+1;
end
s2
或sum(1:100)
其中for也可以使用break如if s>10000 break;
例子分析,求1/2^i +1/3^i (i=1,2…,100),代码如下
i=1:100
s=sum(1./2.i+1./3.i)
i为一列向量,所以分母加点,分母变为一列向量,分子再加点才能运算

disp输出函数
https://www.cnblogs.com/Terrypython/p/9497174.html

magic函数
magic(n)输出一个n*n的矩阵,元素为1到n^2中的数,没有重复,每行每列的和相等

rand函数
rand(n,m)输出一个n*m的矩阵,每个元素为0到1之间的随机数

试错函数try
try…end,当try与end中间部分运行出错(如矩阵相乘但不满足乘法原则),则中间部分跳过
try…catch…end当try与catch之间运行出错时执行catch与end之间的内容,因此必须保证后半部分一定可以运行,若catch与end之间也运行错误则无法运行

外置M文件函数格式
function [ 返回变量 ] = 函数名( 输入变量)
函数内容
end
返回变量只有一个时,中括号可以省略

完成外置函数和源文件,将文件都移动后再打开,运行出现选择更改文件和添加到路径,应选添加到路径

多项式乘积
用到的函数有conv和poly2sym
conv(p,q)是卷积公式,p、q为多项式的系数(行向量),系数为从高次到低次依次排列,不一定要同维度,表达格式如例
求(s^2 +2s+2)(s+4)(s+1)
w=conv([1,2,2],conv([1,4],[1,1]))
w =
1 7 16 18 8
要注意的是conv括号内只能有两个,想要同时多个多项式累乘只能conv中套conv或者定义自定义函数,例如convs

function  a=convs(varargin)
a=1;
for i=1:nargin
 a=conv(a,varargin{i}); 
end

将每个系数数组看做输入数组的元素,convs(p,q,f)=conv(conv(p,q),f)
Poly2sym(w)对于多项式的系数数组自动转换为多项式,默认变量为x
如上例w=conv([1,2,2],conv([1,4],[1,1]))结果为
x^4 + 7x^3 + 16x^2 + 18*x + 8
若想要改变变量的字母可以用poly2str(w,‘s’)将上述的x换为s

匿名函数
f=@(函数变量)函数内容;
个人理解为内置函数,不需要另开一个M文件,相当于c++的void
例f=@(x,y)2*x2+y/x2; z=f(3,5) 返回18.5556

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值