在用yalmip工具箱的时候,用到了syms来算积分,最终的结果是syms和sdpvar的混合运算,类型是syms,但我要把这个混合结果用到yalmip里,需要sdpvar的类型。

笔者尝试过用subs函数将syms替换成数值,但类型仍为syms。尝试用eval或double做类型转换均失败。最终在以下的网址找到了原作者johan的回答,并附下自己的尝试:

1.如何将syms替换成sdpvar:

思路是用subs将函数中的syms变量取代为sdpvar,再将syms格式的fun转化为字符数组,再用eval函数,这样能保留char类型的sdpvar变量,使得总体变为sdpvar。

syms x;
fun = 3*x;
sdpvar x;
fun2 = eval(char(fun));

2.syms与sdp混合运算,将syms分别用数值和sdpvar类型取代,最终结果为sdpvar:

syms x y;fun = x*ysdpvar y;              %syms y用sdpvar代换fun2 = subs(fun,x,10)  %数值代换时,不能x=10直接用subs,推荐此处的用法。%此时subs替换后输出的fun仍为syms类型fun3=eval(char(fun2))  %转化为char后,eval结果即为sdpvar

注:不可直接用syms*sdpvar,再代换syms为数值,这样会报错。必须有syms转为sdp的一步

%错误示例
syms x;sdpvar y;              %无代换 直接定义y为sdpvar类型fun = x*yfun2 = subs(fun,x,10)  %此时subs替换后输出的fun仍为syms类型fun3=eval(char(fun2))  %报错:错误使用 eval  函数或变量‘ ’无法识别。

参考网址:

https://groups.google.com/g/yalmip/c/wod_Q0msAjY

Matlab yalmip 符号变量syms和sdpvar的替换相关推荐

  1. MATLAB创建符号变量和符号表达式

    MATLAB创建符号变量和符号表达式 MATLAB符号运算处理的主要对象是符号或符号表达式,为此要使用一种新的数据类型-符号变量.符号表达式的创建可由符号''或sym函数来完成,sym一次只能创建一个 ...

  2. matlab的符号变量sym,syms

    sym与syms 区别1:如果定义变量x,syms x:当用sym生成多个符号变量时,MATLAB要报错 syms函数的功能比sym函数更为强大,它可以一次创建任意多个符号变量.而且,syms函数的使 ...

  3. matlab sym t,matlab的符号变量sym,syms-Go语言中文社区

    sym与syms 区别1:如果定义变量x,syms x:当用sym生成多个符号变量时,MATLAB要报错 syms函数的功能比sym函数更为强大,它可以一次创建任意多个符号变量.而且,syms函数的使 ...

  4. matlab c++ 符号变量问题

    最近用了Matlab写了个小程序,涉及到了解二元二次方程组,然后用c++调用dll. 解方程组一般可以用solve和fsolve,但是fsolve一次只能得到一个解,而且不一定是收敛解.solve可以 ...

  5. MATLAB符号变量的创建和简单运算

    声明:本文章中数据来自清风老师数学建模课程 文章目录 MATLAB符号变量的创建和简单运算 1.符号变量 1. 1 符号变量的创建 1.2 符号方程的创建 3 符号矩阵的创建 2.符号运算 2.1 简 ...

  6. Matlab学习笔记(1) - 符号变量及其运算

    符号变量及其运算 绪:什么是符号计算? 1.字符型数据变量的创建 2.符号型数据变量的创建 3.符号计算的运算符与函数 4.寻找符号变量 5.符号精度计算 6.显示符号表达式 7.合并符号表达式 8. ...

  7. MATLAB符号变量做矩阵运算出现conj()

    MATLAB符号变量做矩阵运算出现conj() 这两天在做矩阵运算时,发现用符号变量syms时候会出现conj函数,导致结果算不出来. 查了一下后发现[]'代表的是共轭转置,结果会以共轭形式表现,改成 ...

  8. MATLAB从入门到精通-matlab中符号推导应用及相关技巧

    前言 手撕公式必不可少,但是难免出错.在战略上手推公式,而在战术上用matlab符号推导辅助和验证可以大幅度减少出错,并提高效率. 关于MATLAB系列的精品专栏大家可参见 MATLAB-30天带你从 ...

  9. matlab中符号对象的数据类型是,符号对象(Symbolic Object)的使用

    符号对象是什么?符号对象是Matlab中一种特殊的数据类型, 其实质是"a data structure that stores a string representation of the ...

  10. MATLAB的符号运算基础

    在数学运算中,运算的结果如果是一个数值,可以称这类运算为数值运算:如果运算结果为表达式,在MATLAB中称为符号运算,符号计算是对未赋值的符号对象(可以是常数.变量.表达式)进行运算和处理.MATLA ...

最新文章

  1. 微娱推客——青龙羊毛
  2. Linux内核--网络栈实现分析(三)--驱动程序层+链路层(上)
  3. OpenGL Shader Key Points (3)
  4. 【codeforces 239B】Easy Tape Programming
  5. greenplum vacuum清理删除数据命令
  6. 升级版授权系统+盗版追踪+域名IP双授权+在线加密系统
  7. 5分绩点转4分_U19男篮世界杯 | 郭昊文空砍23分4篮板5助攻 国青72-86负菲律宾
  8. PHP常用函数之字符串处理
  9. @软考考生,你想要的论文写作方法及规范,给你安排上了!
  10. creo外观库_Proe/Creo外观着色与贴图
  11. 网上图书订阅系统的WBS图,和WBS字典
  12. 进化树构建的方法原理及检验
  13. 电脑里的所有播放器只能播放声音没有画面
  14. Java ArrayList集合案例(上课笔记)
  15. AC|崔丽/任斌在拉曼光谱结合深度学习识别病原菌胞外囊泡
  16. xlsx 导出导入excel,xlsx-style 修改excel样式
  17. Linux虚拟机遇到的一些问题
  18. 解决pygame中按键连续按下的问题
  19. 计算机磁盘扫描教程,win7系统下关闭“检查磁盘”和“扫描并修复”提示的方法...
  20. S32K142 MCU锁死解锁

热门文章

  1. 自动化测试之邮件发送
  2. 自学iOS开发系列----UI(视图编程入门:UIScrollView)
  3. zic - 时区编辑器
  4. linux环境下如何重装系统,linux如何重装系统
  5. 检查android sdk是否安装成功,Android判断手机是否安装微信
  6. 超好用笔记软件Typora安装教程
  7. 3. 工业大数据的创新价值
  8. Pytorch:lr_schedule恢复训练的注意事项
  9. 什么是监管数据?什么是监管信息系统?监管数据安全管理办法说了什么?
  10. Python3爬取西刺代理前2页国内高匿代理IP并验证有效性,若获取失败,使用快代理获取IP存入表格中