Matlab常用函数持续更新…
1.matlab使用函数xlsread读取EXCEL文件
(1)num=xlsread(filename)
filename是单引号括起来的带路径的文件名,函数直接读取filename所指文件的sheet1中的数据区域存储到双精度矩阵num中;其中,数据区域的选取规则是:对表格前几个含有非数值的行(列)直接忽略,不算入数据区域;另外如果在数据区域中含有非数值的单元,将其处理为nan。
(2)num = xlsread(filename, -1)
输入后matlab将会打开相应的exel文件,用鼠标选择需要导入的数据区域,可以切换到想要的sheet。
(3)num = xlsread(filename, sheet)
其中sheet用来指定读入excel文件的第几个sheet,此时的sheet取值大于1的整数。
(4)num = xlsread(filename,sheet, ‘range’)
其中range指定一个矩形的区域,用单引号括起来;例如:'D2:H4’代表以D2和H4为对角定点的矩形域;
注意当excel中有合并单元格时,任何一个合并前的单元格的名字(比如D1)都会指代整个合并后的单元格,而将整个单元格读入,所以为了避免麻烦,尽量避免在需要读入的表格中合并单元格。
2.matlab使用函数csvread读取CSV文件
csvread()函数有三种使用方法:
1、M = csvread(‘filename’)
2、M = csvread(‘filename’, row, col)
3、M = csvread(‘filename’, row, col, range)
第一种方法中,直接输入文件名,将数据读到矩阵M中。这里要求csv文件中只能包含数字。
第二种方法中,除了文件名,还指定了开始读取位置的行号(row)和列号(col)。这里,行号、列号以0开始计数。也就是说,row=0, col=0表示从文件中第一个数开始读。
第三种方法中,range限定了读取的范围。range = [R1 C1 R2 C2],这里(R1,C1)是读取区域的左上角,(R2,C2)是读取区域的右下角。在使用这种方法时,要求row, col等于range中的前两项。
注意:csv文件中的空项,读到矩阵中时,会初始化为0.
2.matlab遍历文件夹下的特定文件
path = 'G:\test\';
fileExt = '*.mat';
files = dir(fullfile(path,fileExt));
len = size(files,1);
for i=1:len
fileName = strcat(path,files(i,1).name),
end;
4. matlab字符串比较
>> ans = strcmp(‘ab’,[97 98])
ans =
0
>> ans = isequal(‘ab’,[97 98])
ans =
1
>> A = {‘Handle Graphics’, ‘Statistics’; …
’ Toolboxes’, ‘MathWorks’};
>> B = {‘Handle Graphics’, ‘Signal Processing’; …
‘Toolboxes’, ‘MATHWORKS’};
>> match = strcmp(A, B)
match =
1 0
0 0
区别:
- strcmp直接进行对比,要求完全一样
- strcmp还可以用于字符数组的逐个比较
- isequal先将字符串转换成Unicode码后再进行比较
4.matlab循环
- while循环
while(条件)
循环体
end
- for循环
for 循环变量=表达式1:表达式2:表达式3
循环体
end
其中:
表达式2:步长,为1时,可省略;
表达式3:循环变量终值。
或
for循环变量=矩阵表达式
循环体
end
5.matlab数组
- 普通数组:
data = [1,2,3,4];
- 元胞数组:
data={‘123’,‘465’,‘234’}
- 遍历方式
游标遍历:
for i = 1: length(data)
s=s+v(i);
end
元素遍历:for v = data
s=s+v;
end
6.matlab字符串拼接
>> a = ‘hello’
>>b=‘world’
>>c = strcat(a,b)
c =
‘helloworld’