Convert a string into a function of x

66 次查看(过去 30 天)
Hi all,
I have created a string like this:
Sstr = join(compose('(x(%d:%d)-x(%d:%d))))', A), ' + ')
so I get a result:
Sstr='(x(2:180)-x(1:179)+(x(182:360)-x(181:359))'
Is it possible to convert the string into a function of x like this??:
f=@(x) (x(2:180)-x(1:179)+(x(182:360)-x(181:359))
thanks
Nikolas
  1 个评论
Nikolas Spiliopoulos
Here is the code
A=[2 180 1 179 182 360 181 359];
str = join(compose('(x(%d:%d)-x(%d:%d))', A), ' + ')

请先登录,再进行评论。

采纳的回答

Stephen23
Stephen23 2018-11-21
编辑:Stephen23 2018-11-21
You can use str2func:
fun = str2func(['@(x)',Sstr]);
and then call it just like any other function.
  4 个评论
Nikolas Spiliopoulos
Well I solved my problem by converting the cell to a character like this:
g = cell2mat(Sstr)
f = str2func(['@(x)' g])
thanks for the comments !
Stephen23
Stephen23 2018-11-21
@Nikolas Spiliopoulos: you should check the contents of g to make sure that they make sense.
Don't forget to accept my answer if it helped you!

请先登录,再进行评论。

更多回答(1 个)

KRISHNA MAHTO
KRISHNA MAHTO 2023-1-12
编辑:KRISHNA MAHTO 2023-1-12
i have taken string as an input form the user ,, and want data to be converted into funtion of x and y , by the program itself ,,,for easy usage ,
%code to take input form the user -
prompt = "input U:-"
prompt = "input U:-"
u = input(prompt,"s")
Unable to run the 'fevalJSON' function because it calls the 'input' function, which is not supported for this product offering.
prompt = "input V:-"
v = input(prompt ,"s")

类别

Help CenterFile Exchange 中查找有关 Data Type Conversion 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by