Matlab如何定义符号变量

求:怎么在matlab的命令窗口定义“符号常量”?... 求: 怎么在matlab的命令窗口定义 “符号常量”? 展开
 我来答
慎重还可靠灬宝贝f
推荐于2017-11-03 · TA获得超过12.9万个赞
知道大有可为答主
回答量:1.9万
采纳率:52%
帮助的人:2511万
展开全部

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


其他变量的定义:  

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

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

 矩阵和向量

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

H爱不绝迹
2018-03-31 · TA获得超过7.6万个赞
知道大有可为答主
回答量:60
采纳率:85%
帮助的人:3.7万
展开全部

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

具体如下:

1、简介

编程是编写程序的中文简称,就是让计算机代为解决某个问题,对某个计算体系规定一定的运算方式,是计算体系按照该计算方式运行,并最终得到相应结果的过程。

为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。

2、汇编程序

汇编程序。使用汇编语言编写计算机程序,程序员仍然需要十分熟悉计算机系统的硬件结构,所以从程序设计本身上来看仍然是低效率的、繁琐的。但正是由于汇编语言与计算机硬件系统关系密切,在某些特定的场合,如对时空效率要求很高的系统核心程序以及实时控制程序等,迄今为止汇编语言仍然是十分有效的程序设计工具。

3、执行原理

计算机对除机器语言以外的源程序不能直接识别、理解和执行,都必须通过某种方式转换为计算机能够直接执行的。这种将高级编程硬件程序设计语言编写的源程序转换到机器目标程序的方式有两种:解释方式和编译方式。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2018-05-19 · TA获得超过25.9万个赞
知道小有建树答主
回答量:2206
采纳率:96%
帮助的人:77.6万
展开全部

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

例子如下:

扩展知识:

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tianxiawulang
2013-08-16 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2547万
展开全部

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用于指定在特定工作区内执行指定的命令(主要的作用在于从函数中访问基本工作区),像楼上所说的借助它对符号变量“进行更细腻的操作”则是闻所未闻。

 

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-04
展开全部
呵呵,老大讲起知识来太系统了。比较适合给已入门的人总结,进一步提高。估计一楼的消化一会儿,O(∩_∩)O~。你就直接说syms x y z是最好的,比如我就只用这一种。同时回一楼,多看帮助哦,(*^__^*) 嘻嘻……。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式