matlab中的一些函数(上)使用格式

         

matlab中的函数实在是太多了,经常记住这个忘记那个……现将实验中碰到的一些函数及其用法做下记录,等收集差不多的时候再做整理。


1.unidrnd


     语法格式:R = unidrnd(N)


产生从1N所指定的最大数之间的离散均匀随机整数。其中N可以是一个向量、矩阵、多维数组(当然也可以是一个数,即1乘以1的矩阵),但N中所有元素都必须是正整数。这种调用方式将产生一个和N具有相同尺寸(行、列、维数)的矩阵R


R = unidrnd(N,v)


这种调用格式中v是一个行向量,如果v是一个1乘以2的向量,v中的两个元素分别指定了生成的矩阵R的行数(由v(1)指定)和列数(由v(2)指定)。如果v是一个1乘以n的矩阵,R是一个n数组


R = unidrnd(N,m,n)


这里mn分别指定生成的矩阵R的行数和列数。


程序示例


>> a =unidrnd(1)


a = 1


>> a =unidrnd(2)


a = 1


>> a =unidrnd(2)


a = 2


>> a =unidrnd(0)


a = NaN


>> a =unidrnd([1 2 3; 4 5 0])


a =


1 2 2


2 3 NaN


>> a =unidrnd(100, 2, 3)


a =


11 99 19


65 11 1


2.reshape


reshape函数指把制定的矩阵在不改变元素个数的条件下改变形状。
     
例如,行向量:
      a=[1 2 3 4 5 6]
       
执行reshape
       b=reshape(a,3,2) 


结果:
    b=
        1    4


2    5


3    6


a=[1 2 3;4 5 6; 7 8 9]


如果想得到b=[1 2 3 4 5 6 7 8 9]


a转置一下然后使用reshape b=reshape(a',1,9)即可。


3.randi


randimatlab中能产生均匀分布的伪随机整数的新函数。


用法有:


randi(imax)


r =randi(imax,n)


randi(imax,m,n)


randi(imax,[m,n])


randi(imax,m,n,p,...)


randi(imax,[m,n,p,...])


randi(imax,size(A))


r =randi([imin,imax],...)


r = randi(...,classname)


例如:


randi([01],1,10)


生成1*1001随机的矩阵:


ans =


1 1 1 0 0 1 0 10 0





4.fprintf


fprintf函数可以将数据按指定格式写入到文本文件中。其调用格式为:


数据的格式化输出:fprintf(fid, format, variables)


  按指定的格式将变量的值输出到屏幕或指定文件


  fid为文件句柄,若缺省,则输出到屏幕


    1for standard output (the screen) or 2 for standard error. If FID is omitted,output goes to the screen.


  format用来指定数据输出时采用的格式


    %d整数


    %e实数:科学计算法形式


    %f实数:小数形式


    %g由系统自动选取上述两种格式之一


    %s输出字符串


fprintffidformatA
说明:fid为文件句柄,指定要写入数据的文件,format是用来控制所写数据格式的格式符,与fscanf函数相同,A是用来存放数据的矩阵。
6.9创建一个字符矩阵并存入磁盘,再读出赋值给另一个矩阵。
>> a='string';
>> fid=fopen('d:\char1.txt','w');
>> fprintf(fid,'%s',a);
>> fclose(fid);
>> fid1=fopen('d:\char1.txt','rt');
>> fid1=fopen('d:\char1.txt','rt');
>> b=fscanf(fid1,'%s')
b =
string


matlabtxt文件


fid=fopen('fx.txt','r');
%
得到文件号
[f,count]=fscanf(fid,'%f %f',[12,90]);
%
把文件号1的数据读到f中。其中f[12 90]的矩阵
%
这里'%f %f'表示读取数据的形势,他是按原始数据型读出
fclose(fid);
%
关闭文件
另外有的txt文件还可以用load来打开
其语句为
f=load('fx.txt)


5.fscanf


matlab中函数fscanf在文件读取方面的实例如下:


从文件中有格式地读数据 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,']')
返回一个五位十进制整数。


size是一个[m n]的向量,m为行,n为列(注意,这里读取的顺序是按列优先排列的,不明白的话可以看下面的例子),若ninf表示读到文件末尾。


fidfopen打开文件的返回值,


format是格式化参数(像printfscanf)。


举个小例子:


内容:    13,   1,    3.4


        3,    2.1,  23


         1,    12,   2


        4,    5.4,  6


现在为了读取001中的数据存在一个数组里,可以用如下方法


fid=fopen('001.txt');


data=fscanf(fid,'%f,%f,%f',[3,inf]);%这里得用单引号


fclose(fid);


这时data中的数据如下:


13   3     1     4


1    2.1   12    5.4


3.4   23   2     6




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值