s1=input('输入字符串s1=','s');
s2=input('输入字符串s2=','s');
if(length(s1)>length(s2))
fprintf('s1长度比s2长')
elseif(length(s1)==length(s2))
fprintf('s1和s2一样长');
elseif(length(s1)==length(s2))
fprintf('s2长度比s1长');
end
n=0;
r=[];
flag=1;
for i=1:length(s1)
for j=1:length(s2)
if(s1(i)==s2(j))
n=n+1;
if(n>3)
if(flag==1)
r=[s2(j-3),s2(j-2),s2(j-1)];
flag=0;
end
r(n)=s2(j);
fprintf('有长度大于3的子串');
end
if((j+1)<length(s2) && (i+1)<length(s1))
if(s1(i+1)~=s2(j+1))
n=0;
end
end
break
end
end
end
r
本章将介绍如何使用MATLAB来解决一些基本的数学运算问题,主要包括多项式的相关计算,数据插值,曲线拟合以及数据统计处理等相关的内容。本章的主要内容如下:
在MATLAB中,多项式是以行向量的形式存放的,并且约定多项式以降幂的形式出现,如果多项式中缺少某幂次项,则该幂次项的系数为0。例如,多项式 可以表示为:p1=[1 21 20 0],其中常数项为0。
本节将全面介绍与多项式有关的各种计算,包括多项式的四则运算、导函数运算、求值、求根以及分部展开。
多项式的加减运算并无特别,可以使用向量的加减运算实现。多项式的乘除运算比较复杂,为此MATLAB提供了专门的运算函数 conv 和 deconv 。
函数 conv 用于求多项式P1和P2的乘积,它的调用格式如下:
其中,P1、P2是两个多项式系数向量。
函数 deconv 用于对多项式P1和P2作除法运算,它的调用格式如下:
其中,Q返回多项式P1除以P2的商式,r返回P1除以P2的余式。返回的Q和r仍是多项式系数向量。
可以将除法运算deconv看作是乘法运算conv的逆运算,即有P1=conv(P2,Q)+r。
下面通过示例介绍多项式的表示和多项式的四则运算。
MATLAB提供了polyder函数,用于求多项式的导函数。该函数的格式如下:
其中,参数P和Q是多项式的系数向量,返回结果p和q也是多项式的系数向量。
MATLAB提供了两种求多项式值的函数:polyval与polyvalm,它们的输入参数均为多项式系数向量P和自变量x,但是两者是有很大区别的,前者是按数组运算规则对多项式求值,而后者是按矩阵运算规则对多项式求值。具体的调用格式如下所示。
n次多项式具有n个根,这些根可能是实根,也可能含有若干对共轭复根。MATLAB提供了roots函数用于求多项式的全部根,该函数的调用格式为:
其中,P为多项式的系数向量,返回向量x为多项式的根,即x(1),x(2),…,x(n)分别代表多项式的n个根。
另外,如果已知多项式的全部根,MATLAB还提供了函数poly用来建立该多项式,该函数的调用格式为:
其中,x为多项式的根,返回向量P为多项式的系数向量。
对于一个方阵s,可以用函数poly来计算矩阵的特征多项式的系数。特征多项式的根即为特征值,可以用roots函数来计算。
MATLAB提供函数 residue 可以实现将分式表达式进行多项式的部分分式展开。
对于 ,函数的调用格式如下:
其中,b和a分别是分子和分母多项式系数行向量;返回值r是[r1 r2 …rn]留数行向量,p为[p1 p2 …pn]极点行向量,k为直项行向量。下面通过示例来讲述该函数的使用。
多项式的微分MATLAB提供了函数 polyder 来实现,前面介绍多项式的导函数时已经介绍了该函数的具体使用。但是对于多项式的积分运算MATLAB没有提供专门的函数,但可以用 [p/length(p):-1:1,k] 的方法来完成积分,其中k为常数。下面通过示例讲解如何进行多项式的积分运算。
在MATLAB中,可以通过使用变量来存储状态量的值。如果有多个状态量需要赋值,我们可以使用向量或矩阵来存储这些值。例如,如果有3个状态量需要赋值,我们可以创建一个3x1的矩阵,并将每个状态量的值存储在该矩阵的对应位置上。如果需要同时赋值多个状态量,我们可以使用MATLAB中的矩阵运算符,例如“+”、“-”、“”和“/”,来快速计算和赋值。除此之外,我们还可以使用循环结构来遍历状态量,并将它们赋值给相应的变量。在MATLAB中,有许多不同的方法来实现状态量的统一赋值,具体取决于具体的应用场景和数据结构。
1、MATLAB中,一般使用方括号([]),逗号(,),分号(;)与空格来创建二维数组。空数组是一种非常特殊的数组,没有任何元素。创建一个空数组:只要把一个方括号复制给一个变量就可以了。
2、在MATLAB中,创建二维数组可以使用空格+分号的形式。每一行的各个元素使用空格隔开,换行时使用分号隔开。需要注意的是,每一行的元素个数需要相同,不相同的情况下容易报错。
3、在MATLAB中,也可以使用逗号+分号的形式创建数组。每一行的各个元素使用逗号隔开,换行时使用分号隔开。每一行的元素个数需要相同,如果每一行的元素个数不同,MATLAB会报错。
4、在MATLAB中,可以使用冒号创建数组。A=a:b表示从实数a到实数b创建一个间隔为1的数组A。使用上述方式创造的数组A是一维数组,也可以被叫做行向量。数组A相邻两个元素的差值默认为1。
5、也可以使用一种更加自由的方式,创建间距固定的递增或递减数组。A=a:b:c表示从实数a到实数b以间隔为c递增或者递减,创造出数组A。使用这种方法创建数组时,数组A的第一个元素与最后一个元素分别是a和b,数组相邻两个元素之间的差值为c。
这里提供一个利用网格矩阵解二维不定方程整数解的方法:
已知6<x<30,15<y<36,求不定方程 2x+5y=126的整数解。
MATLAB程序如下:
x=5:29;y=14:35;
[x,y]=meshgrid(x,y);
z=2x+5y;
k=find(z==126);
x(k),y(k)
输出为:
ans=
8 13 18 23 28
ans=
22 20 18 16 14
即方程有5组解:(8,22),(13,20),(18,18),(23,16),(28,14)
第一章MATLAB概述1
第一节计算机语言与MATLAB1
第二节MATLAB集成环境4
第三节初识MATLAB6
第四节MATLAB常用命令12
练习题16
第二章MATLAB矩阵创建17
第一节数值矩阵创建17
第二节矩阵运算符29
第三节字符串数组的创建与运算32
第四节程序设计常用运算函数38
第五节单元数组与结构数组42
第三章 MATLAB数值运算第一节 多项式运算第二节 数值方程组求解第三节 数据分析与统计第四节 插值与拟合第五节 数值梯度运算练习题第四章 MATLAB数据的可视化第一节 二维数据曲线图第二节 三维图形第三节 图形修饰处理第四节 图像处理与动画制作练习题第五章 MATLAB符号运算第一节 符号运算的基本 *** 作第二节 因式分解、展开和简化第三节 符号微积分第四节 符号变量替换及计算精度第五节 符号方程求解第六节 符号函数的可视化练习题第六章 MATLAB程序设计第一节 M文件及程序运算符第二节 程序控制结构第三节 函数文件第四节 程序调试及优化第五节 程序的编译第六节 函数句柄和匿名函数练习题第七章 MATLAB文件 *** 作第一节 文件的打开与关闭第二节 文件的读写 *** 作第三节 数据文件定位练习题第八章 MATLAB图形句柄第一节 图形对象及其句柄第二节 图形对象属性及其设置第三节 图形对象的创建练习题第九章 MATLAB用户界面设计第一节 菜单设计第二节 用户控件第三节 预定义对话框第四节 采用GUI DE创建GUI练习题第十章 MATLAB应用案例第一节 用迭代法解方程和方程组第二节 辅助设计与优化第三节 数据分析与统计第四节 频率分析与简谐运动第五节 Hiu密码与蒲丰投针实验第六节 游戏设计附录 MATLAB指令和函数参考文献
以上就是关于matlab程序设计:请设计一个程序,程序包括下列功能: (1) 让用户依次输入两个字符串s1和s2;全部的内容,包括:matlab程序设计:请设计一个程序,程序包括下列功能: (1) 让用户依次输入两个字符串s1和s2;、MATLAB编程与应用系列-第5章 多项式与数据分析(1)、matlab状态量统一赋值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)