机器学习必备的计算机编程技巧(matlab、python)和总结——第三弹!!!

find函数用法

matlab中的fgetl、fgets、fread这些读txt中的一行

Matlab 之 字符串数组查找 strcmp()  

        
  

tline = fgets(fileID)

从文件中读取行,保留换行符 (换行符和回车符)


从文件中读取行,保留换行符 读取指定的文件的下一行,包括换行符。 fileid是一个整数文件标识符从
fopen获得。 tline是一个文本字符串,除非该行只包含结束的文件标记。在这种情况下,tline是数字值-1。与fgets读取字符的编码方案使用与该文件相关联。要指定的编码方案,使用fopen。

tline=fgetl(fid)
从文件中读取行,删除文件换行符

返回由文件标识符fid指示的文件的下一行。如果fgetl遇到文件结束指示符,则返回-1。对于fid的完整描述请参考fopen函数。fgetl函数常用于含有文件换行符的文件。

例如:mm.txt文件内容

1 2 2 3
4 5 6
2 5 6 8
265
3

利用 fgetl()读入时结果:

c=fgetl(fid)

c =

1 2 2 3

利用fgets()读入结果

>> a=fgets(fid)

a =

1 2 2 3

>> whos c
Name Size Bytes Class

c 1x7 14 char array

Grand total is 7 elements using 14 bytes

>> whos a
Name Size Bytes Class

a 1x9 18 char array

Grand total is 9 elements using 18 bytes

当利用fread()读入时,便可以清楚的理解利用fgets()多出来的两个字符。

e=fread(fid)

e =

49
32
50
32
50
32
51
13
10
52
32
53
32
54
13
10
50
32
53
32
54
32
56
13
10
50
54
53
13
10
51

可以看到,利用fread对入的是二进制ASCII码,ASCII码10 和13 对应的是换行符和回车符。这就是fgets()为什么比fgetl()多两个字符的原因

在每个换行的时候都会有换行符和回车符。

当利用UltrEdit打开mm.txt文件转换二进制格式就可以看到.


meshgrid 函数就是生成二维或者三维网格

               例如2-D【x, y】= meshgrid 【1:3, 2:5】 则生成一个 x, y 范围内的网格

>> [X,Y] = meshgrid(1:3,10:14)
X =
     1     2     3
     1     2     3
     1     2     3
     1     2     3
     1     2     3

Y =
    10    10    10
    11    11    11
    12    12    12
    13    13    13
    14    14    14

                      
3-D  [X,Y] = meshgrid(-2:.2:2, -2:.2:2);
 
  
以0.2为割点,从-2 加到 2, 的方阵。
 
  
   
   
[X1,X2] = meshgrid(0:.5:35); 
x1 = 0 0.5 1 1.5 ...35
     0 0.5 1 1.5 ...35
     . ... ... ...  35
     0 0.5 1 1.5 ...35

    
    
x2 = 0   0   0   ... 0
     0.5 0.5 0.5 ... 0.5
     ... ... ... ... 1
     35  35  35  ... 35
都是71*71 的方阵。

查准率(Precision ratio,简称为P),是指检出的相关文献数占检出文献总数的百分比。查准率反映检索准确性,其补数就是误检率。

查全率(Recall ratio,简称为R),是指检出的相关文献数占系统中相关文献总数的百分比。查全率反映检索全面性,其补数就是漏检率。

 
 
 F1 score = 2 prec * rec/(prec + rec)
prec = tp/(tp + fp)
rec = tp/(tp + fn)
 
 
where
ˆ tp is the number of true positives: the ground truth label says it’s an anomaly and our algorithm correctly classified it as an anomaly.
ˆ fp is the number of false positives: the ground truth label says it’s not an anomaly, but our algorithm incorrectly classified it as an anomaly.
ˆ fn is the number of false negatives: the ground truth label says it’s an anomaly, but our algorithm incorrectly classified it as not being anomalous.
也可以看这里更详细
 
 

strtok 函数

>> ab='Welcome to Matlab elcome,Sir!';
[token,remain]=strtok(ab,' ');
>> token
token =
Welcome
>> remain
remain =
 to Matlab elcome,Sir!
 
 
 
 
>> ab='Welcome to Matlab elcome,Sir!';
[token,remain]=strtok(ab,'!');
>> token
token =
Welcome to Matlab elcome,Sir
>> remain
remain =
!
 
 
 
 
>> ab='Welcome to Matlab elcome,Sir!';
[token,remain]=strtok(ab,'W');
>> token
token =
elcome to Matlab elcome,Sir!
>> remain
remain =
   Empty matrix: 1-by-0
 
 
 
 
>> ab='Welcome to Matlab elcome,Sir!';
[token,remain]=strtok(ab,'S');
>> token
token =
Welcome to Matlab elcome,
>> remain
remain =
Sir!
 
 
 
 
>> ab='Welcome to Matlab elcome,Sir!';
[token,remain]=strtok(ab);
>> token
token =
Welcome
>> remain
remain =
 to Matlab elcome,Sir!

strtrim 函数

就是把一段字符串中的开头和结尾的空格删除,但是字符串之间的不变。

>> chr = {'     Trim leading whitespace';
       'Trim trailing whitespace     '}

newChr = strtrim(chr)
chr =
    '     Trim leading whitespace'
    'Trim trailing whitespace     '

newChr =
    'Trim leading whitespace'
    'Trim trailing whitespace'



>> chr = {'     Trim leading whitespace Trim trailing whitespace     '}

newChr = strtrim(chr)
chr =
    '     Trim leading whitespace Trim trailing whitespace …'

newChr =
    'Trim leading whitespace Trim trailing whitespace'
 
 
 
 
 
 
 
 
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值