奇怪的(\ \ \ r \ n)的输出符号乘法

6视图(30天)
你好!
所以我做一些符号乘法和由此产生的输出表达式很长。然而它包括他奇怪的一部分,即:\ \ \ r \ n混合中间画其他的符号变量。我理解这是一个行改变命令但是我怎么能把这个从输出?这非常重要,因为我需要比较如果象征性的输出等于另一个表达式。
2的评论
沃尔特·罗伯森
沃尔特·罗伯森 2020年12月1日
符号表情从来没有包含\ r \ n
char()的一个象征性的表达可能含有\ r \ n,但如果p是char()符号表达式,然后p = = 0会比较字符编码二进制0,这是错误的(大小(p))的结果。和我的内容来回2017说char()的符号表达式不包含\ r \ n。
\ r \ n或是从哪里来的,然后呢?它来自显示符号表达式的内容到命令行。然后你想复制粘贴到一个MATLAB表达式。
显示符号表达式的一种形式,不是MATLAB代码并不是内部符号语言MuPAD
信谊t;char(分段(t < 3 & t > 1、5、9))
ans =在Dom的分段(t::间隔(1,3),5、symtrue, 9)”
试一试evalc (在Dom的分段(t::间隔(1,3),5、symtrue, 9)”);我;disp(我);结束
MException属性:标识符:“MATLAB: m_missing_operator”的信息:“错误:无效的表达式。检查丢失的乘法操作符,缺失或不平衡的分隔符,或其他语法错误。构造矩阵,用括号代替括号。因为:{}栈:[7×1 struct]更正:[]
试一试evalin (symengine在Dom的分段(t::间隔(1,3),5、symtrue, 9)”);我;disp(我);结束
MException属性:标识符:“符号:分段:CannotConvertToTypeBranch”的信息:“无法转换为类型“分支”。因为:{}栈:[10×1 struct]更正:[]
您可以保存()和()加载符号表达式。您可以使用我发布了2017年生产MuPAD symengine方法代码,可以回MuPAD加载。您可以使用matlabFunction()来创建一个或多或少地等效数值表达式,但显示的输出输出符号表达式不应该被复制和粘贴到MATLAB代码。

登录置评。

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2017年4月29日
在os x和Linux上使用的额外字符\ n \ n,而不是\ r \ n。
只会影响默认显示额外的字符。它不影响char()符号表达式。
注意,默认显示和char()符号表达式的运行的风险:
输出截断。文本命令窗口显示超过最大线长度。
你可以通过走进MuPAD绕过这个限制:
函数宏指令(symengine“_assign”,“TemporaryName”,NameOfYourSymbolicVariable);
evalin (symengine写(NameOfTheOutputFile文本。”txt”, TemporaryName)”)
然后NameOfTheOutputFile。txt will contain the full text.
顺便说一下:输出文件将写进哪个目录是当前目录的时候你第一个第一个符号命令在这个会话(或者,如果你已经做了“全部清除”,那么当前目录的时候你的第一个象征意义的命令。)你可以给确定的绝对路径。
6个评论
Shekoofeh Abdollahi
Shekoofeh Abdollahi 2020年11月23日
谢谢你的有用的评论。我很幸运地找到这个页面后失望地解决我的问题!
我已经解决和vpasolve,找到了答案。但是当我替代答案在变量(通过“潜艇”功能或手动),答案不是甚至接近于零。我不知道在哪里的问题,这就是为什么我认为这是因为符号变量。所以,这可能与这一主题无关,但你能帮我做这个问题。

登录置评。

更多的答案(2)

约翰Chilleri
约翰Chilleri 2017年4月28日
编辑:约翰Chilleri 2017年4月28日
你好,
如果它只是一个一次性的,你可以确定,删除:
expr = [expr(1:之前)expr(后端)];
如果这将是遇到了多次,我将创建一个函数来搜索字符串并删除它,例如:
函数str = rm_garbage(字符串)
n =长度(字符串);
i = 6: n
如果比较字符串(字符串(我:我),“\ \ \ r \ n”)
打破;
结束
结束
字符串str =[(1:的时候)字符串(i + 1:结束)];
结束
运行这个任意字符串生成:
> >字符串
字符串=
kadbehjwkbnwjkbfsjdbj \ \ \ r \ ndhjbfjsb
> > str
str =
kadbehjwkbnwjkbfsjdbjdhjbfjsb
在那里你可以看到“\ \ \ r \ n”被移除。
希望这可以帮助!
2的评论
约翰Chilleri
约翰Chilleri 2017年4月28日
编辑:约翰Chilleri 2017年4月28日
很好的使用字符串替换——我不知道 strrep ,但它肯定是更好的方法。谢谢你的知识!

登录置评。


MC
MC 2017年4月29日
谢谢你的回答!虽然这些字符串操作似乎没有工作在我的符号表达式
1评论
沃尔特·罗伯森
沃尔特·罗伯森 2017年4月29日
符号表达式不是字符串(或人物),除非你char(),如果你你就会没有\ r \ n \ n \ n在结果(但是,如上所述,它可能被截断。)

登录置评。