matlab中fprintf, fscanf, fwrite, fread函数的用法

  1. clear  
  2. clc  
  3.   
  4. cd('C:\Documents and Settings\Administrator\桌面\matlab\test');  
  5.   
  6. a = 1 : 10;  
  7. fid = fopen('myData.txt', 'w');  
  8. fprintf(fid, '%d ', a);  
  9. fclose(fid);  

      上述程序生成了myData.txt文件,其中的内容为:

1 2 3 4 5 6 7 8 9 10

 

[plain]  view plain copy
  1. clear  
  2. clc  
  3.   
  4. cd('C:\Documents and Settings\Administrator\桌面\matlab\test');  
  5.   
  6. fid = fopen('myData.txt', 'r');  
  7. [a count] = fscanf(fid, '%d', inf);  
  8. fclose(fid);  

      上述程序从myData.txt中读取数据,放在列向量a中,最终count = 10; a = [1;2;3;4;5;6;7;8;9;10];

 

[plain]  view plain copy
  1. clear  
  2. clc  
  3.   
  4. cd('C:\Documents and Settings\Administrator\桌面\matlab\test');  
  5.   
  6. a = 0 : 255;  
  7. fid = fopen('myFile.yuv', 'wb');  
  8. fwrite(fid, a, 'uchar');  
  9. fclose(fid);  

      上述程序是以二进制方式存的0-255, 用文本文件方式打开肯定是乱码, 所以要用UltraEdit打开,真正看到的是存储在里面的比特位, 用UltraEdit看到的结果是: 00 01 02 ...... FE FF

 

[plain]  view plain copy
  1. clear  
  2. clc  
  3.   
  4. cd('C:\Documents and Settings\Administrator\桌面\matlab\test');  
  5.   
  6. fid = fopen('myFile.yuv', 'rb');  
  7. [a count] = fread(fid, inf, 'uchar');  
  8. fclose(fid);  

      上述程序读取myFile.yuv文件中的内容,count = 256; a = [0;1;2;...;254;255];

 

 

 

 

      以上用的都是向量,实际上可以用矩阵,有时候,用矩阵更方便. 为了简便起见,仅仅考虑把数据读到矩阵中(不考虑把矩阵写进文件)

[plain]  view plain copy
  1. clear  
  2. clc  
  3.   
  4. cd('C:\Documents and Settings\Administrator\桌面\matlab\test');  
  5.   
  6. fid = fopen('myData.txt', 'r');  
  7. [a count1] = fscanf(fid, '%d', [5 2]);  
  8. fclose(fid);  
  9.   
  10. fid = fopen('myFile.yuv', 'rb');  
  11. [b count2] = fread(fid, [16 16], 'uchar');  
  12. fclose(fid);  


      count1 = 10; count2 = 256; a和b都是矩阵的形式

a =

     1     6
     2     7
     3     8
     4     9
     5    10

b =

     0    16    32    48    64    80    96   112   128   144   160   176   192   208   224   240
     1    17    33    49    65    81    97   113   129   145   161   177   193   209   225   241
     2    18    34    50    66    82    98   114   130   146   162   178   194   210   226   242
     3    19    35    51    67    83    99   115   131   147   163   179   195   211   227   243
     4    20    36    52    68    84   100   116   132   148   164   180   196   212   228   244
     5    21    37    53    69    85   101   117   133   149   165   181   197   213   229   245
     6    22    38    54    70    86   102   118   134   150   166   182   198   214   230   246
     7    23    39    55    71    87   103   119   135   151   167   183   199   215   231   247
     8    24    40    56    72    88   104   120   136   152   168   184   200   216   232   248
     9    25    41    57    73    89   105   121   137   153   169   185   201   217   233   249
    10    26    42    58    74    90   106   122   138   154   170   186   202   218   234   250
    11    27    43    59    75    91   107   123   139   155   171   187   203   219   235   251
    12    28    44    60    76    92   108   124   140   156   172   188   204   220   236   252
    13    29    45    61    77    93   109   125   141   157   173   189   205   221   237   253
    14    30    46    62    78    94   110   126   142   158   174   190   206   222   238   254
    15    31    47    63    79    95   111   127   143   159   175   191   207   223   239   255

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值