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的元素所在位置
  • 相关阅读:
    .net String.Format数字格式化输出
    sql prompt5安装好了,也破解完成了,然后到SQL里面还是没有提示是为什么?
    DataSet筛选数据然后添加到新的DataSet中引发的一系列血案
    .net 时间戳互相转换(精确到毫秒)
    记录一次MVC 3.0错误 HTTP 404您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用。请检查以下 URL 并确保其拼写正确。
    IIS7部署项目时提示:"错误消息 401.2。: 未经授权: 服务器配置导致登录失败。"的解决办法
    IIS发布网站出现“未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项。”的解决方法
    微信支付(APP)集成时碰到的问题(.net提示“无权限”、iOS跳转到微信支付页面中间只有一个“确定”按钮)
    由SpringMVC中RequetContextListener说起
    关于cas-client单点登录客户端拦截请求和忽略/排除不需要拦截的请求URL的问题(不需要修改任何代码,只需要一个配置)
  • 原文地址:https://www.cnblogs.com/MiLu/p/3641326.html
Copyright © 2011-2022 走看看