急!matlab solve用法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了急!matlab solve用法相关的知识,希望对你有一定的参考价值。
参考技术A在MATLAB中,solve函数主要是用来求解代数方程(多项式方程)的符号解析解。
用法示例:
solve(eq)
solve(eq, var)
solve(eq1, eq2, ..., eqn)
g = solve(eq1, eq2, ..., eqn, var1, var2, ..., varn)
其中,eq代表一个符号表达式或字符串,var代表一个变量名称
详细的解释:
g=solve(eq)
函数求代数方程的符号解析解。参量eq表示符号表达式或字符串。若eq是一符号表达式或一没有等号的字符串,则函数对方程的默认变量求解方程eq=0,默认变量由命令findsym(eq)确定。若输出参量g为单一变量,则对于有多重解的非线性方程,g为一行向量。
g=solve(eq,var)
扩展资料
solve使用注意事项
1、solve解非代数方程的能力较弱,最好结合其他方式求解非代数方程
2、如果解得是一个方程组,而且采用了形如[a,b]=solve(a+b==1, 2*a-b==4,a,b) 的格式,那么,在MATLAB R2014a中没问题,可以保证输出的a,b就等于相应的解。
3、但是在R2012b等早先版本中不能保证输出的顺序就是你声明变量时的顺序。所以最好采用g=solve(a+b==1, 2*a-b==4,a,b)这种单输出格式,这样输出的是一个结构体,g.a和g.b就是对应的解。
matlab fread命令,急!
matlab的fread命令格式为:[count]=fread(fid,size,precision),precision规定了以浮点数、整型数、字符读出时字节数,这是什么意思。比如,我读一个二进制文件,如果precision设为'int8',是指读的时候每八位(一个字节)读成一个数值吗?
MATLAB文件操作相关命令5.2.4 输入输出语句
(1) 实时交互输入输出
input;keyboard
(2) 完全复制式的文件存取
*1) save
save
save '文件名' x
save '文件名' x y z
save '文件名' x y z –ascii
save '文件名' x y z –ascii –double
save '文件名' x y z –ascii –double –tabs
save '已有文件名' x y z –append
注1:save 的默认文件名是 fname.m
注2:–ascii 8字节 ascii码方式
注3:–ascii 16字节 ascii码方式
注3:–ascii –double –tabs 格式排列
注3:–append 续后存放
*2) load
load
load '文件名'
注1:load 的默认文件名是 fname.m
(3) 文件存取管理(建立与读写)
文件管理(打开、写入、读出、关闭、定位),
*1)“fopen”打开文件,赋予文件代号。
语法1:FID= FOPEN(filename,permission)
用指定的方式打开文件
FID=+N(N是正整数):表示文件打开成功,文件代号是N.
FID=-1 : 表示文件打开不成功。
FID在此次文件关闭前总是有效的。
如果以读方式打开,matlab首先搜索工作目录,其次搜索matlab的其他目录,“permission”是打开方式参数。
打开方式参数由以下字符串确定:
r 读出
w 写入(文件若不存在,自动创建)
a 后续写入(文件若不存在,自动创建)
r+ 读出和写入(文件应已存在)
w+ 重新刷新写入,(文件若不存在,自动创建)
a+ 后续写入(文件若不存在,自动创建))
w 重新写入,但不自动刷新
a 后续写入,但不自动刷新
文件的存储格式:文件打开的默认方式是:二进制。以文本方式打开,可以在方式参
数“permission”中加入“t”文件将,如“rt”,“wt+”
语法2:[fid,message]= FOPEN(filename,permission)
FID=-1 ,文件打开不成功时,返回错误信息
语法3:[fid,message]= FOPEN(filename,permission,machineformat)
permission: 用指定的方式打开文件。
machineformat: 指定读写时用的数据格式。
数据格式(machineformat)取值如下
'native' or 'n' Local machine format - the default
'ieee-le' or 'l' IEEE 浮点数( little-endian byte ordering)
'ieee-be' or 'b' IEEE 浮点数( big-endian byte ordering)
'vaxd' or 'd' VAX D 浮点数 (VAX ordering)
'vaxg' or 'g' VAX g 浮点数 (VAX ordering)
'cray' or 'c' Cray 浮点数 (big-endian byte ordering)
长型数据
'ieee-le.l64' or 'a' IEEE 浮点数(little-endian byte ordering和64 位)
long data type
'iecc-be.l64' or 's' IEEE 浮点数(big-endian byte ordering和64 位)
long data tw
语法4: [filename,permission,machineformat]=fopen(fid)。
查看打开文件的情况返回文件名、打开方式、文件格式。如果fid不存在,则返回变量。
fid=fopen('allall')
返回当前所有打开的文件。
*2)“fwrite”以二进制形式,向文件写入数据。
语法1:count=fwrite(fid,a,precision)
将矩阵a 写入fid指向的打开的文件,matlab 自动将a元值转换成precision规定的精度(见后),写成列的形式。count是返回值,写入成功,返回写入数据个数,否则返回0。
语法2:count=fwrite(fid,a,precision,skip)
skip:取正整数n ,
将矩阵a 以步长n 跳选数值写入fid指向的打开的文件,例如,a=1,2,3,4,5,6,7,8,9 ;skip=2; 则输入 _,_,3,_,_,6,_,_,9。这对非连续数据场,定长插入数据极有意义。
*3)“fread”以二进制形式,从文件读出数据。
语法1:[a,count]=fread(fid,size,precision)
语法2:[a,count]=fread(fid,size,precision,skip)
size: 不指定 :到尾返回读。
N : 读出N个数据,构成列向量。
inf : 读出fid指向的打开的文件的全部数据。
[M,N] : 读出N个数据,构成列向量,填入M*N矩阵
precision(精度)
precision(精度)规定了以浮点数、整型数、字符读出时字节数。matlab 的precision(精度)的表达式与c语言、fortran语言、是一致的。不规定precision(精度),则字符默认为: ucher、则数值默认为:双精度 。
以下precision(精度)将保证读出具有一致的体积。
MATLAB C or Fortran Descriphon(精度)
'char' 'char*l' 8 字节数,字符型
'uchar' 'unsigned char' 8 字节数
'schar' 'signed char' 8 字节数,字符型
'int8' 'integer*1' 8 字节数,整型数
'intl6' 'integer*2' 16 字节数,整型数.
'int32' 'integer*4' 32 字节数,整型数.
'int64' 'integer*8' 64 字节数,整型数
'uint8' 'integer*l' 8 字节数
'uintl6' 'integer*2' 16 字节数
'uint32' 'integer*4' 32 字节数
'uint64' 'integer*8' 64 字节数
'float32' 'real*4' 浮点数, 32 字节数
'float64' 'real*8' 浮点数, 32 字节数
以下precision(精度)将不保证读出具有一致的体积。
MATLAB C or Fortran Descriphon(精度)
'short' 'short' 16 字节数,整型数
'int' 'int' 32 字节数,整型数
'long' 'long' 32 (64) 字节数,整型数
'uShort' 'Unsigned short' 16 字节数
'uint' 'Unsigned int' 32 字节数
'ulong' 'unsigned long' 32 (64) 字节数
'float' 'float' 浮点数, 32 字节数
'double' 'double' 浮点数, 64 字节数
以下precision(精度)规定读出指定的体积n。
'bitN' N字节数,整型数 1<=N<=64
'ubitN' N字节数, 1<=N<=64
*4)从文件中有格式地读数据 fscanf
语法1:[a,count]=fscanf(fid,format,size)
根据指定的格式从fid 文件按照格式format读出数据并按size的格式放入内存。
a :读出的数据放入内存的变量名
count :返回值。0:失败、n>0:成功,n是读出数据个数。
fid :文件号
size :a的数据的格式
N : 列向量
inf : 读出文件全部数据
[M,N] : 读出数据以M*N的格式放入变量名a内
format :读出数据的格式
format是字符形式,与C语言基本相同。字符形式中有“%”与字符集(d,i,o,u,x,e,f,g,s,c,…)搭配构成。
如: %s:单字符读
%c:读space字符
例:s=fscanf(fid,'%s') 返回一个字符。
a=fscanf(fid,'%5d') 返回一个五位十进制整数。
*5)关闭文件 fclose
语法1:fclose(fid)
语法2:fclose('all')
*6)向文件写数据 printf
语法1:count=printf(fid,format,a,b,s,……)
例:
x=0:0.1:1;
y=[x;exp(x)];
fid=fopen('exp.txt','w')
fprintf(fid,'%6.2 %12.8f\n',y);
计算结果:
0.0 1.00000000
0.1 1.10517092
1.00 2.71828183
*8) 指针放到文件头:frewind
语法1:frewind(fid)
, hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">以下precision(精度)规定读出指定的体积n。
'bitN' N字节数,整型数 1<=N<=64
'ubitN' N字节数, 1<=N<=64
*4)从文件中有格式地读数据 fscanf
语法1:[a,count]=fscanf(fid,format,size)
根据指定的格式从fid 文件按照格式format读出数据并按size的格式放入内存。
a :读出的数据放入内存的变量名
count :返回值。0:失败、n>0:成功,n是读出数据个数。
fid :文件号
size :a的数据的格式
N : 列向量
inf : 读出文件全部数据
[M,N] : 读出数据以M*N的格式放入变量名a内
format :读出数据的格式
format是字符形式,与C语言基本相同。字符形式中有“%”与字符集(d,i,o,u,x,e,f,g,s,c,…)搭配构成。
如: %s:单字符读
%c:读space字符
例:s=fscanf(fid,'%s') 返回一个字符。
a=fscanf(fid,'%5d') 返回一个五位十进制整数。
*5)关闭文件 fclose
语法1:fclose(fid)
语法2:fclose('all')
*6)向文件写数据 printf
语法1:count=printf(fid,format,a,b,s,……)
例:
x=0:0.1:1;
y=[x;exp(x)];
fid=fopen('exp.txt','w')
fprintf(fid,'%6.2 %12.8f\n',y);
计算结果:
0.0 1.00000000
0.1 1.10517092
1.00 2.71828183
*8) 指针放到文件头:frewind
语法1:frewind(fid) 参考技术A 根据指定类型读取规定长度的字节,然后解析成指定类型的数字。 参考技术B “fread”以二进制形式,从文件读出数据。
语法1:[a,count]=fread(fid,size,precision)
语法2:[a,count]=fread(fid,size,precision,skip)
matlab 的precision(精度)的表达式与c语言、fortran语言、是一致的。
不规定precision(精度),则字符默认为: ucher、则数值默认为双精度 。
以上是关于急!matlab solve用法的主要内容,如果未能解决你的问题,请参考以下文章