matlab查询函数用法,matlab函数用法总结

这篇博客详细介绍了MATLAB中进行文件操作的方法,包括判断系统、路径管理、文件读写、目录处理和数据格式化。文章通过示例代码展示了如何检查当前系统、添加路径、创建目录、读取和写入文件、处理文件夹内容以及使用fprintf和fscanf进行数据格式化和读取。此外,还提到了向量化编程技巧和函数参数处理。
摘要由CSDN通过智能技术生成

文件处理系统

ispc用来判断当前的电脑系统是否是windows系统,是返回1,不是返回0文件路径

Currdir = fileparts(mfilename('fullpath'));

addpath(genpath(fullfile(Currdir, 'io')));

mkdir(fullfile(Currdir, 'io'));

dataset_path = fullfile(Currdir, 'dataset', );

if exist(dataset_path, 'dir') == 0

error('dataset_path is missing; See README.md');

end

mfilename 表示正在运行的函数的路径

fileparts 则返回文件上层的文件夹路径

fullfile 则返回组合文件的全路径

genpath 递归的产生该文件夹下的所有文件的路径

addpath 把路径加入到工作区

exist 查看路径是否存在

mkdir 创建对应的文件夹文档读写相关

dir_dataset = dir(dataset_path);

lMask=cell2mat({dir_dataset(:).isdir});if(any(~lMask)), dataset_path(~lMask)=[]; end; %dir_dataset只保留子文件夹的信息

strnam = dir('dataset_path*.jpg'); %只保留dataset下jpg文件的信息

dir获取文件夹的相关信息,返回一个struct strnam = dir('path*.#')中path是你想要获取的文件夹路径,*是通配符,#是你想获取的文件类型,比如jpg,返回文件夹下所有jpg文件的信息

fid=fopen(filename,permission);

fid=+N (N>0):文件打开成功,代号为N fid=-1:文件打开失败 permission:'r'-读,'w'-写,'a','rt+','wt+','at+'

sp=sprintf('pi= %8.5f',pi); %生成格式化字符串stringprintformat

disp(sp); %->'pi=3.14159'(数字长度8位,小数点后5位,f小数形式)

fprintf(fid, format, A);%生成格式化字符串到文件或显示屏fileprintformat

fid为文件句柄(default时为1,直接输出到命令行),指定要写入数据的文件

format是用来指定数据输出时采用的格式,与fscanf函数相同:

%d 整数

%e 实数:科学计算法形式

%f 实数:小数形式

%g 由系统自动选取上述两种格式之一

%s 输出字符串

A是用来存放数据的矩阵。

[A, count]=fscanf(fid,format,size)%从一个文件中读取数据到A中,常用于画图

fid=fopen('d:num.txt');

data=fscanf(fid,'%f,%f,%f',[3,inf]) ;%这里得用单引号

fclose(fid);

size=[3,inf]文件d:num.txt内容如下:13,1,3.4

3,2.1,23

data结果如下:13,3

1,2.1

3.4,23

for d=1:3

s = ['load August',int2str(d),'.mat']

eval(s)

end

eval将字符串转换成可执行的语句并运行,上面的循环相当于下面3句话

load August1.mat

load August2.mat

load August3.mat正则表达式regexp

通用画图

维度转换

数据类型转换 cell2mat(),num2str(),str2num(),unique(),cat()

C = cat(dim, A, B) %按dim来联结A和B两个数组

cat(2, A, B)%-->[A, B]

cat(1, A, B)%-->[A; B]

向量化编程bsxfun arrayfun cellfun structfun

A = randi(10,3,2)%假设你有3组数据,每一组数据有2维

7 7

8 2

8 8

A_cell = num2cell(A,2)%先将其按行转化为cell

[1x2 double]

[1x2 double]

[1x2 double]

y_hat = cellfun(@(x) (x.*10) ,A_cell, 'UniformOutput', false)%这样就可用cellfun进行向量化处理了

[1x2 double]

[1x2 double]

[1x2 double]

y = cat(1,y_hat{:})%处理完成之后,又变换回原来的格式

70 70

80 20

80 80

函数相关函数输入参数

nargin对应varargin的个数,是一个数值,而varargin用来存入输入变量,以元胞数组形式存储 nargout对应varargout的个数,是一个数值,而varargout用来存入输出变量,以元胞数组形式存储 nargin用来判断输入变量个数的函数。可以针对不同的输入参数个数执行不同的功能。通常用它来设定一些默认值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值