matlab计算结果如何得到分数

作者&投稿:濯连 (若有异议请与网页底部的电邮联系)
matlab如何把小数转换成分数~

#include
#include
#include
using namespace std;
//求最大公约数函数
__int64 gcd(__int64 a,__int64 b)
{
__int64 m;
for(m=a%b;m!=0;m=a%b)
{
a=b;
b=m;
}
return b;
}
int main()
{
string input;
while(cin>>input)
{
int indexDot=input.find('.')+1;//小数点的位置
int indexXH=input.find('(');//循环位的位置
bool flag=false;
if(indexXH!=string::npos)
{
flag=true;//说明有循环位
indexXH++;
}
//有限小数转分数
if(!flag)
{
int lenDecimal=input.length()-indexDot;
string decimal=input.substr(indexDot,lenDecimal);
__int64 up=atoi(decimal.c_str());//得到分子
//cout<<lenDecimal<<''<<up<<endl;
__int64 down=pow(10,lenDecimal);
__int64 common=gcd(up,down);
printf("分子是:%I64d分母是:%I64d
",up/common,down/common);
}
//循环小数转分数
else
{
int n=indexXH-indexDot-1;//非循环位的长度
int m=input.length()-indexXH-1;//循环位的长度
string strN=input.substr(indexDot,n);
string strM=input.substr(indexXH,m);
int num1=atoi(strN.c_str());
int num2=atoi(strM.c_str());
//cout<<num1<<''<<num2<<''<<m<<''<<n<<endl;
__int64 up=num1*(pow(10,m)-1)+num2;
__int64 down=(pow(10,m)-1)*pow(10,n);
//printf("%I64d%I64d",up,down);
__int64 common=gcd(up,down);
printf("分子是:%I64d分母是:%I64d
",up/common,down/common);
}
}
return 0;
}

扩展资料:return表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由return后面的参数指定。
return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。

有两种可能:
1、matlab显示格式被设为了分数,可以用format long转换为小数显示。2、使用了符号计算,得到的精确解,会出现分数,可以用vpa转换为小数显示。
如:
x=sym(1/2)
y=vpa(x)

扩展资料:MATLAB命令行窗口常见命令与功能
who:显示当前工作空间中所有变量的一个简单列表
whos:列出变量的大学,数据格式等详细信息
what:列出当前目录下的.m文件和.mat文件
load name:下载name文件中的所有变量到工作空间
load name x y:下载name文件中的变量x,y到工作空间
save name:保存工作空间变量到文件name.mat中
save name x y:保存工作空间变量x,y到文件name.mat中
注意:`

delete <文件名>
从磁盘中删除指定的文件
这是插入delete的哪一行代码,<要用<表示。



命令
功能




clc
擦去一页命令窗口,光标回到屏幕的左上角

.....


符号化就可以了:
sym(0.333333)

ans =

3002396749180579/9007199254740992
望采纳!!

ls正解
要精确的1/3直接这样就行

>> sym(1/3)

ans =

1/3


用matlab(1)计算_1^2x^*sinxdx2计算曲线 y?
y=x*sin(x) ← 定义y表达式 Dy=diff(y,x,1) ← 求y的一阶导数 S=int(sqrt(1+Dy^2),1,2) ← 计算曲线弧长 S=vpa(S) ← 数值计算 (3) 在MATLAB软件的命令行窗口中逐行输入命令:fx=@(x)sin(x).\/x ← 定义被积函数 Q=integral(fx,1,2)【实验结果与分析】(1) 执行后...

matlab积分怎么算?
计算结果: s = 1.4936 3、高精度数值积分(1)为了克服梯形积分法精度低的问题,可以采用高精度积分方式,第一种可以采用 z = quad(Fun,a,b) 该方式是自适应步长Simpson计分法求得函数Fun在区间[a,b]上定积分,如下:clc;clear;梯形积分法 s = quad(inline('exp(-x.^2)'),-1,1)计算...

matlab中已知A=[0 5 4;1 5 0];B=[1 0 3;2 5 0];那么A|B的运行?_百度知...
在MATLAB中,A|B表示A和B的逻辑或运算,即对A和B中的每个元素进行逻辑或运算,得到一个新的矩阵。对于给定的A和B,A和B的大小相同,都是2行3列的矩阵,所以可以进行逻辑或运算。具体运算过程如下:A = [0 5 4;1 5 0]; B = [1 0 3;2 5 0]; C = A | B;运算结果为:C = [1 ...

matlab自变量多个值,经公式运算,输出多个结果,如何编程
syms C R eq1=((C\/((1\/2)+X+(1\/(0.013*R)))*(1-Y))-R;eq2=((A*(11*(C-40)))\/(8*(C+80)))-R;s=solve(eq1,eq2);C=vpa(s.C,5);R=vpa(s.R,5);end 2、再命令窗口或程序文件中,输入下列命令 X=5;Y=10;A=3;[C,R]=ex_fun(X,Y,A)3、计算结果 C = ...

matlab中运行M文件怎么才能得出计算的结果?
2、直接在运行界面输入该m文件的名字(如m文件叫aa.m,则输入'aa')3、得出结果 方法二:在.m文件编辑环境中直接运行,一般是在debug菜单项中选run或者直接全选按F9。m文件实际就是保存你编写的代码用的一种文件格式,也就是所谓的“脚本”,方便重复调用。他和命令窗是一样的,matlab会安装m文件里...

如何用matlab计算1到10阶的和?
源程序代码以及算法解释如下:matlab求1-10的阶乘的函数源码如下:function p = factorial()p=1;for a=1:10%设置要求的阶乘 for i=1:a%循环遍历从1到a p=p*i;%遍历相乘 end;\/\/函数结束 p%输出结果 p=1;%p还原其初始值 end end 程序运行结果如下:...

MATLAB中可以输入公式,再带入数值,求出式子吗?
可以使用内联函数inlinef输入公式,代入数值后计算结果。如在MATLAB中输入> f=inline('x*y+z')> f = f(x, y, z) = x*y+z > f(3,3,4)ans = 13 1、inline定义的类的内联函数,函数的代码被放入符号表中,在使用时直接进行替换(像宏一样展开),没有、调用的开销,效率也很高。...

怎样用matlab计算回归系数?
具体步骤:如下图所示,一组数据共有50个变量,需要对此数据做一元线性回归分析y=b1+b2*x,若只想得出线性回归模型,而不做其他分析只需调用b=regress(y,X);程序代码如下:2.由回归结果得b=[44.2815,0.4199],即回归模型可以写为y=44.2815+0.4199*x,模型结果如图所示:3.若是想通过一些指标...

matlab 怎么样能输入参数计算然后输出结果
下面是一个例子,有>>的是输入的代码。matlab中输入参数V1(例子中的是一组数)X1是一个数学表达式。回车后输出价格 >>V1=[12.10 11.96 11.80 11.65 11.50];>>x1=log(V1)x1 = 2.4932 2.4816 2.4681 2.4553 2.4423 ...

matlab 求解方程组 结果用参数表示
b,c,t')要特别注意,最后的[b,c,t]=...这个式子后面一长串在matlab语句窗口中要整理到一行,不然会出错。(我忘了如何分行写长命令))。。还有那个长表达式,还不知道有没有搞错,我眼花了。最后的结果:b = [-2\/3*a*6^(1\/2)*(2^(1\/2)*(h\/a)^(1\/2))^(1\/2)][2\/3*a*6...

温州市15928223437: MATLAB中怎么把小数转换为分数? -
游安启维: rats(a) 或者用format rat

温州市15928223437: Matlab7 矩阵运算结果 分数表示 -
游安启维: 你用符号计算. >> A=10/3; >> B=rat(A) >> C=sym(A) 不知道是不是你想要的.

温州市15928223437: matlab中怎么把多项式的根用分数方式表示 -
游安启维: 可以的,你将Matlab重新启动试一试看.>> p = [1 -6 -72 -27] p =1 -6 -72 -27>> roots(p) ans =12.1229-5.7345-0.3884

温州市15928223437: 用MATLAB对离散数据进行积分 -
游安启维: 哦 这个比较简单,下面使用两种方法%by dynamic %see also http://www.matlabsky.com %contact me matlabsky@gmail.com %2009.2. % %得到积分数据,这里的x我是随机生成的 x=rand(1,1000); t=[1:1000]*(1/100); % %方法一 trapz(t,x) % %方法二 s=sum(x)*(1/100) %

温州市15928223437: 用matlab7.0软件求逆矩阵时,得出逆矩阵的数显示的是小数,如何才能显示分数? -
游安启维: 在你的程序前面加上format rat

温州市15928223437: MATLAB的命令窗口输出结果怎么把分数形式变成小数形式? -
游安启维: 有两种可能.一种是matlab显示格式被设为了分数.可以用format long转换为小数显示.具体可参看format的帮助文件.一种是使用了符号计算,得到的精确解,会出...

温州市15928223437: matlab 求积分 -
游安启维: >> syms x f=1.788*x/(25+x^2)*exp(-(log(x/20)/0.316)^2); I=int(f,x,0,inf); double(I) ans = 0.9376>>

温州市15928223437: MATLAB 中用int进行定积分,结果输出为分数形式,怎么改为小数形式?我其他输出已经是小数了 -
游安启维: Matlab一般默认显示小数,若是不显示,你可以用format long来显示.还有一种方法,即是类型转换,比如:n=double(1)/2;则可以显示位小数.有两种可能. 一种是matlab显示格式被设为了分数.可以用format long转换为小数显示.具体可...

温州市15928223437: 如何用matlab求积分的程序 -
游安启维: 程序: fun=sin(0.5*pi*x./y);%% a=int(int(fun,y,sqrt(x),x),x,1,2); b=simple(a) %化简 I=vpa(b,4) %得到4位近似解,也可以任意N位解 结果: I = 0.2719

温州市15928223437: 用MATLAB算积分 -
游安启维: 使用MATLAB软件,可以用int()计算不定积分或定积分.计算方法如下:syms x int((log(x))^2/x) %这里 ln(x) 用 log(x) 来表示 计算结果 log(x)^3/3 %ln³(x)/3

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网