Matlab 变量值直接输出 和 sprintf输出 不同是怎么回事?

问题描述

Matlab 变量值直接输出 和 sprintf输出 不同是怎么回事?
 nitao=2.175;
nitae=2.18;
derta33=30.3;
derta13=5.7;
L=0.1;%m
lamda0=0.633*10^(-6);%m
Vm=100;%v
e=43;
A=10^(-3);%m^2
dertaf=10^7;%Hz

syms Ez;
E=solve(2*pi*L/lamda0*((nitao-nitae)+Ez*(nitae^3*derta33-nitao^3*derta13)/2)==pi,Ez);
E
sprintf('半波电场强度:%e','E')

Vpi=E*L;
dertaph=Vm*pi/Vpi;
dertaph
sprintf('相位延迟:%e','dertaph')

P=e*A*Vpi^2*dertaph^2*dertaf/(pi*L);
P
sprintf('驱动功率%e','P')

结果:
E =

(9444732965739290427392*pi)/1196549586897533007794808436155 + 11258999068427/287405211048345088

ans =

半波电场强度:6.900000e+01

dertaph =

(100*pi)/((4722366482869645213696*pi)/5982747934487665038974042180775 + 11258999068427/2874052110483450880)

ans =

相位延迟:1.000000e+02相位延迟:1.010000e+02相位延迟:1.140000e+02相位延迟:1.160000e+02相位延迟:9.700000e+01相位延迟:1.120000e+02相位延迟:1.040000e+02

P =

43000000000*pi

ans =

驱动功率8.000000e+01

为什么变量值和sprintf的值不一样?
为什么相位延迟有这么多个?

解决方案

解决了。。
我自问自答吧[侧目]
是酱紫:

 syms Ez;
E=solve(2*pi*L/lamda0*((nitao-nitae)+Ez*(nitae^3*derta33-nitao^3*derta13)/2)==pi,Ez);
E
sprintf('半波电场强度:%e',double(E))

Vpi=E*L;
dertaph=Vm*pi/Vpi;
dertaph
sprintf('相位延迟:%e',double(dertaph))

P=e*A*Vpi^2*dertaph^2*dertaf/(pi*L);
P
sprintf('驱动功率%e',double(P))

就得到:

 E =
(9444732965739290427392*pi)/1196549586897533007794808436155 + 11258999068427/287405211048345088
 ans =
 半波电场强度:3.919945e-05
dertaph =
(100*pi)/((4722366482869645213696*pi)/5982747934487665038974042180775 + 11258999068427/2874052110483450880)
 ans =
相位延迟:8.014380e+07
P =
 43000000000*pi
 ans =
驱动功率1.350885e+11

是符合的

解决方案二:

http://zhidao.baidu.com/link?url=w_hWdZFfsy2_4XnAim-kXmRxyXeEAtYtG3xp0EmrhwBAkChAJofTBWp7QZKh63ByasgcamXJySVCsDl4XNnROa

时间: 2024-10-03 22:48:38

Matlab 变量值直接输出 和 sprintf输出 不同是怎么回事?的相关文章

matlab-为什么MATLAB中通过表达式对某变量赋值,但是该变量值不发生变化,还是保持原先的值

问题描述 为什么MATLAB中通过表达式对某变量赋值,但是该变量值不发生变化,还是保持原先的值 为什么MATLAB中通过表达式对某变量赋值,但是该变量值不发生变化,还是保持原先的值 解决方案 看看是不是有别的地方又赋值了,或者变量名搞错了. 解决方案二: 调试过程中可以很明显的看到,赋值符号右边是对的,但是就是不能输出到左边变量 解决方案三: 该变量是不是全局变量呢

flash as3获取php的变量值实现方法

HP代码 (test1.php): 不推荐写成这种含html代码的形式:  代码如下 复制代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

java-程序里面有静态变量,我想执行好几遍,每次的变量值都从外面获取,我的静态变量应该怎么改

问题描述 程序里面有静态变量,我想执行好几遍,每次的变量值都从外面获取,我的静态变量应该怎么改 我发下主要代码吧,涉及到静态变量的.主要是想把文件路径filename和获取的source的名字改成非静态的public class ProcessRow {static Properties source;static { try { source = new Properties(); FileInputStream fis = new FileInputStream(new File( inpu

PHP互换两个变量值的方法(不用第三变量)_php技巧

前言 今天在这里我们就来看看,在PHP中如何在不使用第三变量的情况下,达到交换两个变量值得目的.详细的解说见代码注释,下面来一起看看吧. 一.substr() && strlen() 代码: <?php /** * 双方变量为字符串时,可用交换方法一 * 使用substr()结合strlen()两个方法达到交换变量值得目的 */ $a = "This is A"; // a变量原始值 $b = "This is B"; // b变量原始值 ec

ORACLE获取SQL绑定变量值的方法总结

  本文总结一下ORACLE数据库中如何获取SQL绑定变量值的方法,在SQL优化调优过程中,经常会用到这方面的知识点.在此梳理.总结一下,方面日后查找.翻阅.     方法1:查询V$SQL   V$SQL视图中的BIND_DATA字段用来存储绑定变量的值,但是从这个视图查询绑定变量的值,有很大的局限性:       1: 它的记录频率受_cursor_bind_capture_interval隐含参数控制,默认值为900,表示每900秒记录一次绑定值,也就是说在900内,绑定变量值的改变不会反

java 变量-一个程序里面有静态变量,我想执行好几遍该程序,每次的变量值都从外面获取,我的静态变量应该写成什么样

问题描述 一个程序里面有静态变量,我想执行好几遍该程序,每次的变量值都从外面获取,我的静态变量应该写成什么样 一个程序里面有静态变量,我想执行好几遍该程序,每次的变量值都从外面获取,我的静态变量应该写成什么样? 是不是不能用静态的了? 解决方案 看下你的代码设计是否有问题呢?通常静态变量设计为私有熟悉,并且提供给外界get/set方法.静态变量是类变量,是全局的. 而你的需求貌似是每执行一次,就从外界获取一次,这种属性应该是跟对象有关,不应该设置为静态变量吧. 解决方案二: 我发下主要代码吧,涉

php用ini_get获取php.ini里变量值的方法_php技巧

本文实例讲述了php用ini_get获取php.ini里变量值的方法.分享给大家供大家参考.具体分析如下: 要得到php.ini里的变量值,当然,你可以用phpinfo();来得到所有php配置信息,但如果要想得到某个变量值的话,你又要怎样获取呢? php里提供一个获取php.ini里的变量值的函数:ini_get() ini_get()的用法非常简单,下面通过实例说明它是如何使用的. 语法: string ini_get ( string varname ) 返回值如果为布尔型则为0或1 实例

ios-swift中变量值可选问题

问题描述 swift中变量值可选问题 var optionalString:String?="Hello String" if var name2 = optionalString{ var greeting = "Hello, (name2)" name2 println(name2) } var name3 = optionalString println(name3) 上面代码中name2的输出值为Hello String 而name3的输出值为Optiona

vb-随机数与变量比较变量值改变 这是为什么

问题描述 随机数与变量比较变量值改变 这是为什么 随机数A与变量B比较后,神奇的事情发生了,变量B值发生了改变. 解决方案 能把代码post出来看看吗 解决方案二: Randomizea = Rndb = -1.1c = a > bmsgbox b