zoukankan      html  css  js  c++  java
  • matlab

    fid = fopen('D:\1MHz.txt');
    dataW = fread(fid, 20000000, '*int16');
    plot(dataW);
    %axis([2.0038*10e5 2.004*10e5 -34000 34000]);
    grid;

    1.函数功能

      用来读写一个数据块。

    2.一般调用形式

      fread(buffer,size,count,fp);

      fwrite(buffer,size,count,fp);

    3.说明

      (1)buffer:是一个指针,对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。

      (2)size:要读写的字节数;

      (3)count:要进行读写多少个size字节的数据项;

      (4)fp:文件型指针。

     注意:1 完成次写操(fwrite())作后必须关闭流(fclose());

               2 完成一次读操作(fread())后,如果没有关闭流(fclose()),则指针(FILE * fp)自动向后移动前一次读写的长度,不关闭流继续下一次读操作则接着上次的输出继续输出;

               3 fprintf() : 按格式输入到流,其原型是int fprintf(FILE *stream, const char *format[, argument, ...]);其用法和printf()相同,不过不是写到控制台,而是写到流罢了。注意的是返回值为此次操作写入到文件的字节数。如int c = fprintf(fp, "%s %s %d %f", str1,str2, a, b) ;str1:10字节;str2: 10字节;a:2字节;b:8字节,c为33,因为写入时不同的数据间自动加入一个空格。

    find(A>m,4)返回矩阵A中前四个数值大于m的元素所在位置

    L = bwlabel(BW,n)
    返回一个和BW大小相同的L矩阵,包含了标记了BW中每个连通区域的类别标签,这些标签的值为1、2、num(连通区域的个数)。n的值为4或8,表示是按4连通寻找区域,还是8连通寻找,默认为8。

     

    函数bwlabel

    MATLAB图像处理工具箱中的函数bwlabel是把四连通或八连通的区域连接起来,调用语法(syntax)为:
    L = bwlabel(BW,n)

    [L,num] = bwlabel(BW,n) 
    其中BW为输入的二值图像(binary image);N可取值为4或8表示连接四连通或八连通区域;NUM为找到的连通区域数目;L为输出图像矩阵,其元素值为整数,背景被标记为0,第一个连通区域被标记为1,第二个连通区域被标记为2,依此类推.所以你不明白的1,2,3即为第1,2,3个连通区域的标记。

     附注:四连通或八连通是图像处理里的基本概念: 8连通,是说一个像素,如果和其他像素在上、下、左、右、左上角、左下角、右上角或右下角连接着,则认为他们是联通的;4连通是指,如果像素的位置在其他像素相邻的上、下、左或右,则认为他们是连接着的。

    BW = [1     1     1     0     0     0     0     0

          1     1     1     0     1     1     0     0

          1     1     1     0     1     1     0     0

          1     1     1     0     0     0     1     0

          1     1     1     0     0     0     1     0

          1     1     1     0     0     0     1     0

          1     1     1     0     0     1     1     0

          1     1     1     0     0     0     0     0];

    [L,num] = bwlabel(BW,4) 

    L =

         1     1     1     0     0     0     0     0

         1     1     1     0     2     2     0     0

         1     1     1     0     2     2     0     0

         1     1     1     0     0     0     3     0

         1     1     1     0     0     0     3     0

         1     1     1     0     0     0     3     0

         1     1     1     0     0     3     3     0

         1     1     1     0     0     0     0     0

    num=3

    如果只想查看第二个连通区域的位置(标记为2),可以用find函数

    [r,c] = find(L==2);  

    rc = [r c]

    rc =

    2 5

    3 5

    2 6

    3 6      注意此处的25 35 26 36 是按照列优先的顺序给出的。

    find(A>5)返回矩阵A中大于5的元素所在位置
  • 相关阅读:
    微信JS SDK Demo
    两种方法实现在HTML页面加载完毕后运行某个js
    JS 页面加载触发事件 document.ready和onload的区别
    Thinkphp3.2添加QQ互联和新浪微博一键登录功能
    bootstrap-select实现下拉框多选效果
    Sass (Syntactically Awesome StyleSheets)
    常见MFC UI界面库[转]
    VTK序列图像的读取[转][改]
    c语言-格式控制字符 %XXd 用法
    3DSlicer源代码编译过程vs2008+windows xp [转]
  • 原文地址:https://www.cnblogs.com/MiLu/p/3641326.html
Copyright © 2011-2022 走看看