由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Computation版 - [转载] matlab的字符串处理功能强吗?
相关主题
[合集] 请教一段matlab程序 (转载)matlab question: signum and abs
请教vc里调用matlab的函数[转载] mathematica 和 C/C++的混合编程 -observer
[合集] Matlab中这种小问题如何解决?HELP. Symbolic substitution IN MATLAB.
Binary integer programming in Matlab?【MATLAB 2010中符号变量设置为何总是出错】
请教一个MATLAB的小数准换问题Matlab help needed: load data into cell array
matlab 里关于路径字符串的tricky问题请问:如何在matlab里面算p-value (multivariate)
请教如何用MATLAB去fit一个多项式?ask a question
Analytic solution for an ODE一个优化实践问题
相关话题的讨论汇总
话题: 字符串话题: str话题: matlab话题: str2num话题: findstr
进入Computation版参与讨论
1 (共1页)
l********r
发帖数: 14
1
【 以下文字转载自 Programming 讨论区 】
【 原文由 littledear 所发表 】
偶的具体问题是这样的。
偶有一个sym object, such as:
y=3*x^2+5*x^7
想把系数和阶次取出放到数组里面。
偶能想到的办法是用字符串比较,找'x','*','^'等关键字,然后取出相应的
字符串,然后转换成数。这在c里面应该不难,不知道matlab是否方便?
有更好的办法实现这个吗?
c*v
发帖数: 53
2
should be very easy to identify the number after '*X^'

【在 l********r 的大作中提到】
: 【 以下文字转载自 Programming 讨论区 】
: 【 原文由 littledear 所发表 】
: 偶的具体问题是这样的。
: 偶有一个sym object, such as:
: y=3*x^2+5*x^7
: 想把系数和阶次取出放到数组里面。
: 偶能想到的办法是用字符串比较,找'x','*','^'等关键字,然后取出相应的
: 字符串,然后转换成数。这在c里面应该不难,不知道matlab是否方便?
: 有更好的办法实现这个吗?

l********r
发帖数: 14
3
我现在觉得作为字符串取出来的确不难。问题在于:
matlab的symbol expression总是把小数写成分数形式,分母分子经常会有几百个数字,
这样
转化成数字(str2num)时超出处理范围了。难道symbol不能是小数形式吗?这样我至少还
可以指定精度什么的。

【在 c*v 的大作中提到】
: should be very easy to identify the number after '*X^'
r****y
发帖数: 1437
4

suppose string
str = 'y =3*x^2+5*x^7'
idx = findstr(str, '*');
ind = findstr(str, '^');
coefficient = str2num(str(idx-1));
power = str2num(str(ind+1));
If your coefficient and power can be real number, needs more
positioning statement.


【在 l********r 的大作中提到】
: 我现在觉得作为字符串取出来的确不难。问题在于:
: matlab的symbol expression总是把小数写成分数形式,分母分子经常会有几百个数字,
: 这样
: 转化成数字(str2num)时超出处理范围了。难道symbol不能是小数形式吗?这样我至少还
: 可以指定精度什么的。

l********r
发帖数: 14
5
我现在觉得作为字符串取出来的确不难。问题在于:
matlab的symbol expression总是把小数写成分数形式,分母分子经常会有几百个数字,
这样
转化成数字(str2num)时超出处理范围了。难道symbol不能是小数形式吗?这样我至少还
可以指定精度什么的。
btw,你的算法有个小flaw:
如果某个系数为1,表达式不显示出来,所以需要多些判断语句。

【在 r****y 的大作中提到】
:
: suppose string
: str = 'y =3*x^2+5*x^7'
: idx = findstr(str, '*');
: ind = findstr(str, '^');
: coefficient = str2num(str(idx-1));
: power = str2num(str(ind+1));
: If your coefficient and power can be real number, needs more
: positioning statement.
:

1 (共1页)
进入Computation版参与讨论
相关主题
一个优化实践问题请教一个MATLAB的小数准换问题
ANSI C下如何转换十进制小数为十六进制小数matlab 里关于路径字符串的tricky问题
怎么表示小数点后长度为200的小数呀?请教如何用MATLAB去fit一个多项式?
菜鸟问题Analytic solution for an ODE
[合集] 请教一段matlab程序 (转载)matlab question: signum and abs
请教vc里调用matlab的函数[转载] mathematica 和 C/C++的混合编程 -observer
[合集] Matlab中这种小问题如何解决?HELP. Symbolic substitution IN MATLAB.
Binary integer programming in Matlab?【MATLAB 2010中符号变量设置为何总是出错】
相关话题的讨论汇总
话题: 字符串话题: str话题: matlab话题: str2num话题: findstr