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 ...350 0.5 1 1.5 ...35. ... ... ... 350 0.5 1 1.5 ...35x2 = 0 0 0 ... 00.5 0.5 0.5 ... 0.5... ... ... ... 135 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,' '); >> tokentoken =Welcome>> remainremain =to Matlab elcome,Sir!>> ab='Welcome to Matlab elcome,Sir!'; [token,remain]=strtok(ab,'!'); >> tokentoken =Welcome to Matlab elcome,Sir>> remainremain =!>> ab='Welcome to Matlab elcome,Sir!'; [token,remain]=strtok(ab,'W'); >> tokentoken =elcome to Matlab elcome,Sir!>> remainremain =Empty matrix: 1-by-0>> ab='Welcome to Matlab elcome,Sir!'; [token,remain]=strtok(ab,'S'); >> tokentoken =Welcome to Matlab elcome,>> remainremain =Sir!>> ab='Welcome to Matlab elcome,Sir!'; [token,remain]=strtok(ab); >> tokentoken =Welcome>> remainremain =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'