필터 지우기
필터 지우기

Using a string as a command?

조회 수: 102 (최근 30일)
Kavan
Kavan 2013년 3월 7일
Let's say I have x=linspace(0,10), and y='x.^2', as a string. How do I tell MatLab to apply y to x? What I am asking is, in the command window, I can type yy=x.^2 to get the desired result. But, I am writing a script and I need to be able to take the string 'x.^2' and tell MatLab yy=x.^2, so I get a yy double that I can plot in the linspace I created. However, simply typing yy=y just creates another string yy='x.^2'.

답변 (3개)

Jing
Jing 2013년 3월 7일
You can do that by using 'eval'. When y is the string, try the following command.
yy=eval(y);
  댓글 수: 2
Walter Roberson
Walter Roberson 2013년 3월 7일
This is not recommended.
Jing
Jing 2013년 3월 8일
Why not?

댓글을 달려면 로그인하십시오.


Andrei Bobrov
Andrei Bobrov 2013년 3월 7일
편집: Andrei Bobrov 2013년 3월 7일
eg:
str = 'x.^2';
yy = str2func(['@(',char(symvar(str)),')',str]);
use
x = 0:10;
out = yy(x);
ADD
str = 'x^2 - y^2'
k = strcat(symvar(str),',');
k = [k{:}];
yy = str2func(['@(',k(1:end-1),')',vectorize(str)]);
use
x = 1:10;
y = linspace(5,20,10);
out = yy(x,y);

Walter Roberson
Walter Roberson 2013년 3월 7일
f = str2func( ['@(x) ' TheString] );
yy = f(x);

카테고리

Help CenterFile Exchange에서 Numeric Types에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by