Matlab如何定义符号变量

作者&投稿:郯服 (若有异议请与网页底部的电邮联系)
matlab 怎么定义符号变量~

如下面的例子,未定义就会出错。符号变量定义方法例如: sym x 或者 syms x ,两者有区别也有共同点。

可以定义一个元胞数组
syms x1 x2 %定义所需符号变量
x=cell(1,2); %建立1*N的元胞数组
x(1,1)={x1}; %这里需要用大括号,
x(1,2)={x2};

F=[2*x{1}-x{2}-exp(-x{1}),-x{1}+2*x{2}-exp(-x{2})] %调用数组中元素时要用大括号

运行结果:
F =

[ 2*x1 - x2 - 1/exp(x1), 2*x2 - x1 - 1/exp(x2)]

  如下面的例子,未定义就会出错。符号变量定义方法例如: sym x 或者 syms x ,两者有区别也有共同点。


其他变量的定义:  

计算过程当中的存储数值的变量

  可以不必定义,随时需要,随时定义,但是有时候如果变量很多,那么最好提前声明,声明的时候,可以直接赋予0值,并且注释,这样方便以后区分,避免混淆。

 矩阵和向量

  对于矩阵一般都是需要定义的,定义好矩阵之后,才方便访问/修改矩阵的指定元素,矩阵声明(定义)的方法,常用的 就是声明为零矩阵zeros(M,N),或者单位矩阵ones(M,N),eye(M,N)等。



计算过程当中的存储数值的变量。可以不必定义,随时需要,随时定义,但是有时候如果变量很多,那么最好提前声明,声明的时候,可以直接赋予0值,并且注释,这样方便以后区分,避免混淆。



可以用sym  或者 syms 定义变量。
如果没有提前定义的话,可以在使用时可直接进行赋值使用。
MATLAB中变量名以字母开头,后接字母、数字或下划线,最多63个字符;区分大小写;关键字和函数名不能作为变量名。

例子如下:

扩展知识:

Matlab变量的特点:不需事先声明,也不需指定变量类型,Matlab自动根据所赋予变量的值或对变量所进行的操作来确定变量的类型;在赋值过程中,如果变量已经存在,Matlab会用新值代替旧值,并以新的变量类型代替旧的变量类型。
变量的默认类型为double。



1、syms命令是创建多个符号变量的简捷写法,

syms a b positive

相当于

a = sym('a','positive');
b = sym('b','positive');

所以,这种写法,a和b都是正的。

 

2、如果只想声明b是正数,那就考虑分开写:

syms a
syms b positive

但是,如果先syms a b,经过一系列操作后,再声明syms b positive,也是有效的(但很显然只对声明为正之后的操作有效)。下面是一个例子:

>> syms b
>> Dt=sym('Dirac(t-b)') 
Dt = 
Dirac(t-b)
 
>> laplace(Dt) 
ans = 
laplace(Dirac(-t+b),t,s)
 
>> syms b positive
>> laplace(Dt) 
ans = 
exp(-b*s)

值得特别指出的是,clear b并不会清除b的positive属性,例如在上面的代码后面,如果再进行下面的操作:

>> clear b
>> laplace(Dt) 
ans = 
exp(-b*s)
 
>> syms b real
>> laplace(Dt) 
ans = 
exp(-s*b)-exp(-s*b)*Heaviside(-b)
 
>> syms b unreal
>> laplace(Dt) 
ans = 
laplace(Dirac(-t+b),t,s)

也就是说,除非用命令改变b的属性(或者用clear mex或clear all之类的做法强制重启符号计算内核),前面声明的positive或real属性会一直有效。

 

3、2011b之前的MATLAB,对符号变量的限定只有三种选择:复数(unreal,默认),实数(real),或者正数(positive),因而无法实现你希望b>=0的要求。2012a引入了三个函数:assume、assumeAlso和assumptions,可以对符号变量属性进行更多的限定,可以实现你的上述要求。更详细的信息请查阅这几个函数的文档。

 

4、据我所知,evalin用于指定在特定工作区内执行指定的命令(主要的作用在于从函数中访问基本工作区),像楼上所说的借助它对符号变量“进行更细腻的操作”则是闻所未闻。

 

希望对楼主有帮助,有问题可追问。



呵呵,老大讲起知识来太系统了。比较适合给已入门的人总结,进一步提高。估计一楼的消化一会儿,O(∩_∩)O~。你就直接说syms x y z是最好的,比如我就只用这一种。同时回一楼,多看帮助哦,(*^__^*) 嘻嘻……。


matlab如何定义函数
很多用户在使用matlab软件来进行编程的时候,有一些函数需要进行定义,但是很多人不会定义,这时候我们可以新建一个脚本,把函数写在脚本中来进行调用。matlab如何定义函数:1、首先打开软件,在“新建”中创建一个函数。2、然后定义一个test函数,输入图中的数据,test是函数名,result是返回结果,a和b是...

matlab 定义函数
matlab中定义函数的方式有以下几种:1、函数文件+调用函数文件:定义多个M文件。调用函数文件:myfile.m clear clc for x=1:10 y=mylfg(x);end 自定义函数文件: mylfg.m function y=mylfg(x) %注意:函数名(mylfg)必须与文件名(mylfg.m)一致 Y=3*x+1;注:这种方法要求自定义函数必须...

matlab向量定义
matlab向量定义方法:x=[];for i=1:N x=[x i];end

MATLAB中如何使用用户自定义函数?
用户自定义的函数需要放在path路径下,或者当前文件夹下。

在matlab中怎么定义整型变量
1、好像默认都是浮点型的。2、可以通过format命令控制精度。format long format short format e ...3、提供丰富的函数取整,例如fix round floor ceil 可以按照自己的需求使用

matlab自定义函数的几种方法
matlab自定义函数的有三种方法。方法一:inline()匿名函数,例如 f= inline('sin(2*pi*x + theta)', 'x', 'theta')方法二:@()句柄函数,例如 f=@( theta,x)sin(2*pi*x + theta)方法三:function 文件,例如 function f = myfun(theta,x)f=sin(2*pi*x + theta);

matlab的下标是如何定义的。
全下标:>> a(2,4)ans = 8 单下标:>> a(11)ans = 8 单下标就是每一列按照顺序排列,第十一个数就是所要的8。取出子矩阵:>> a(2:3,[1,2,4])ans = 2 4 8 3 6 12

matlab中变量如何定义?
可以用sym 或者 syms 定义变量。如果没有提前定义的话,可以在使用时可直接进行赋值使用。 MATLAB中变量名以字母开头,后接字母、数字或下划线,最多63个字符;区分大小写;关键字和函数名不能作为变量名。例子如下:扩展知识:Matlab变量的特点:不需事先声明,也不需指定变量类型,Matlab自动根据所赋予...

matlab怎么定义函数啊?
matlab中定义函数的方式有以下几种:1、函数文件+调用函数文件:定义多个M文件。调用函数文件:myfile.m clear clc for x=1:10 y=mylfg(x);end 自定义函数文件: mylfg.m function y=mylfg(x) %注意:函数名(mylfg)必须与文件名(mylfg.m)一致 Y=3*x+1;注:这种方法要求自定义函数必须...

matlab中如何定义数组的维数?
x=ones(1,n)表示x为全0数组;q=zeros(1,n)表示q为全0数组;n=length(a)表示获得数组a的最大维度。1、数组的维数:在MATLAB中,允许标量数据沿行、列、页等方向排列成 ‘长方体’,而构成数组,而行、列、页等排列方向就分别被 称为行维、列维和页维。2、数组的规模及相关术语:数组沿某...

城子河区15230603696: matlab 怎么定义符号变量 -
法瑗露畅: 如下面的例子,未定义就会出错.符号变量定义方法例如: sym x 或者 syms x ,两者有区别也有共同点.

城子河区15230603696: MATLAB符号变量定义 -
法瑗露畅: 可以定义一个元胞数组 syms x1 x2 %定义所需符号变量 x=cell(1,2); %建立1*N的元胞数组 x(1,1)={x1}; %这里需要用大括号, x(1,2)={x2};F=[2*x{1}-x{2}-exp(-x{1}),-x{1}+2*x{2}-exp(-x{2})] %调用数组中元素时要用大括号运行结果: F =[ 2*x1 - x2 - 1/exp(x1), 2*x2 - x1 - 1/exp(x2)]

城子河区15230603696: Matlab如何定义符号变量 -
法瑗露畅: 呵呵 早将问题说明白点不就少费神了些吗可以的 Matlab中提供了符号傅里叶变化函数不过使用前 符号变量一定要定义或者转换,否则Matlab不认的

城子河区15230603696: matlab 中 如何定义 符号变量 -
法瑗露畅: 与C语言不同,一般变量在M文件或者command window中随用随声明

城子河区15230603696: 在matlab中怎样定义0,1矩阵变量0 -
法瑗露畅: 情况一:符号变量 必须要定义,定义之后才可以使用.如下面的例子,未定义就会出错. 符号变量定义方法例如: sym x 或者 syms x ,两者有区别也有共同点. 情况二:计算过程当中的存储数值的变量 可以不必定义,随时需要,随时定义,但是有时候如果变量很多,那么最好提前声明,声明的时候,可以直接赋予0值,并且注释,这样方便以后区分,避免混淆. 情况三:矩阵和向量 对于矩阵一般都是需要定义的,定义好矩阵之后,才方便访问/修改矩阵的指定元素,矩阵声明(定义)的方法,常用的 就是声明为零矩阵zeros(M,N),或者单位矩阵ones(M,N),eye(M,N)等.

城子河区15230603696: MATLAB如何定义自定义数目的符号变量 -
法瑗露畅: 一般不建议这样做,用元胞数组更好一些: n = input('n? '); x = cell(n,1); x{4} = 12;这样 x{4} 就被赋值成 12 了.没被赋值过的,比如 x{1},就是一个空矩阵 []. 你的要求也能做到,比如都初始始化成 0 可以这样: n = input('n? '); for i = 1:neval(strcat('x', num2str(i), '=0;')); end但效率会低一些,变量名是 x1, x2 这样后面用的话,循环写起来也更麻烦.

城子河区15230603696: 如何在matlab中创建符号矩阵 -
法瑗露畅: 符号变量要用SYMS来声明,MATLAB中将其识别为一个常量,就像一个给了值的常数一样.因为MATLAB是不能识别符号的,声明以后系统就把符号变量当作一个常量对待.例如在S变换中,就要声明S为符号变量,不然,系统不能识别S.知道了符号变量的作用,矩阵的就不用我多说了吧.在一个参数取多个值时,可定义为符号变量,这样的最后求得的表达式中就只有这些变量,然后,只需把所取数值依次代入表达式中就可求得结果,可以大大减少计算量.

城子河区15230603696: matlab 怎样 创建复数类型的符号变量 -
法瑗露畅: 先定义两个实数的变量,然后将其表示成复数形式,比如定义两个变量a,b,那么复数可以表示成a+b*j

城子河区15230603696: matlab 怎么定义一个正整数的字符变量 -
法瑗露畅: syms a solve('a^2=1') %得到的是正负1syms a positive solve('a^2=1') %得到的只有+1

城子河区15230603696: 请问64位系统怎样在MATLAB函数中定义一个符号变量 -
法瑗露畅: syms..比如定义一个x的符号变量:syms x

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网