从Matlab字符串中删除一些特定字符

时间:2014-02-11 19:57:18

标签: matlab

我最近开始在MATLAB中编程为自己创建一些实用程序。我想创建一个图形界面来解决方程式。

在命令行中,我可以通过以下方式实现此目的:

syms x
result = solve('12*x=24');

( and result is going to be = 2 )

我想通过创建GUI来改进这个过程。

我目前的计划如下:

function [ output_args ] = SolveEq( equation )
    syms x a b;
    output_args = solve( equation );

end

这仅适用于适用于xab变量的等式。我想按如下方式处理字符串:

  1. 删除空格。我找到了如何实现这个here
  2. 从该字符串中获取变量。

    例如:在字符串'12+a-b=0'中,我希望我的程序能够找到ab是变量,并且还为它们执行syms操作。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

您正在使用的语法无需声明符号变量即可工作:

f=solve('12*x=24');

使用表达式而不是字符串需要声明符号变量:

syms x
f=solve(12*x==2);

使用字符串,然后什么都不做。

解决后需要的代码:

if isstruct(f)
  %more than one variable
  names=fieldnames(f);
else
  %only one variable, f is the solution
end