>> syms x
>> y=16*x-48;
>> x=solve('abs(y)=1')%为什么这里直接用y代替表达式得到的结果不正确
x =
1
-1
>> x=solve('abs(16*x-48)=1')
x =
49/16
47/16
另外,括号里面的表达式为什么要加单引号,MATLAB究竟什么时候用字符串什么时候用符号变量(初学,已被单引号整晕。。)
为什么下面的MATLAB计算时不能直接把表达式带入?求大神指教
答案:2 悬赏:70 手机版
解决时间 2021-01-30 10:47
- 提问者网友:杀生予夺
- 2021-01-29 16:28
最佳答案
- 五星知识达人网友:大漠
- 2021-01-29 17:48
单引号里面表示字符串,solve函数对于字符串会自动转换为符号量,例如
>> x=solve('abs(16*x-48)=1')
x =
[ 49/16]
[ 47/16]类似的
>> x=solve('abs(y)=1')
x =
[ 1]
[ -1]这里需要注意,传递给solve函数的只是一个字符串【'abs(y)=1'】,在这个字符串里面MATLAB会自动查找作为变量使用的符号,也就是y,但这个y和你之前赋值的变量【y=16*x-48】没有任何关系,用句时髦的话说,不在一个次元。
要想让这个y与之前赋值的量发生关联,就应该使用变量,例如
>> syms x
>> y=16*x-48;
>> x=solve(abs(y)-1)
x =
[ 49/16]
[ 47/16]注意,这里的方程不能写成带等号的形式,只能是f=0的形式,求解用solve(f)。
>> x=solve('abs(16*x-48)=1')
x =
[ 49/16]
[ 47/16]类似的
>> x=solve('abs(y)=1')
x =
[ 1]
[ -1]这里需要注意,传递给solve函数的只是一个字符串【'abs(y)=1'】,在这个字符串里面MATLAB会自动查找作为变量使用的符号,也就是y,但这个y和你之前赋值的变量【y=16*x-48】没有任何关系,用句时髦的话说,不在一个次元。
要想让这个y与之前赋值的量发生关联,就应该使用变量,例如
>> syms x
>> y=16*x-48;
>> x=solve(abs(y)-1)
x =
[ 49/16]
[ 47/16]注意,这里的方程不能写成带等号的形式,只能是f=0的形式,求解用solve(f)。
全部回答
- 1楼网友:忘川信使
- 2021-01-29 18:18
首先,读入图形文件,后缀为*.jpg,*.bmp
其次,提去图形边缘线,转成数据文件
然后,根据数据走向,确定拟合图形的方程表达式
最后,拟合出方程的系数
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯