MATLAB怎样把读取的数据间的多个空格变为一个
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB怎样把读取的数据间的多个空格变为一个相关的知识,希望对你有一定的参考价值。
首先给出一个文件test.m如下:1.2 1.4 1.5 1.6 1.3 1 (也就是说这个test.m文件内相邻的数字之间的空格数是随机的)我用如下方法读取这个文件中的数据:fidin=fopen('test.m'); %打开test.msyms A %建立矩阵变量A,用于存储数据line=fgetl(fidin); %从文件读行A=line这样得到的A中相邻数字之间也有很多空格,可我想使A中 各数字间的空格都变成一个,该怎么实现呢 ???请给出详细的过程 谢谢
可以针对于下标属性进行操作,比如:clc; clear all;
%打开test.m
fidin = fopen('test.m', 'r');
%建立矩阵变量A,用于存储数据
syms A
%从文件读行
tline = fgetl(fidin);
A = tline
tf = isspace(tline); % 空格判断
dtf = diff(tf); % 差分
dtf = [0 dtf]; % 对齐到向量
ind = find(dtf~=0); % 找到空格起始位置
tind = ~tf; % 取非零数值信息
tind(ind) = 1; % 设置标记
tline = tline(tind); % 过滤数据
A = tline
fidin = fclose(fidin); 参考技术A A中应该是一系列的字符吧,如果不是字符,把它转化为字符,这样对A中的字符一个一个的查找对比,如果不是空格,就保留,如果是空格,查看下一个字符,如果下一个也是空格,则删除该空格。
祝你学习愉快!
怎样用matlab读取一个文件夹下的多个子文件夹中的多个jpg图片,急用啊~~~
这样:
imgPath = 'E:/imageData/'; % 图像库路径
imgDir = dir([imgPath '*.jpg']); % 遍历所有jpg格式文件
for i = 1:length(imgDir) % 遍历结构体就可以一一处理图片了
img = imread([imgPath imgDir(i).name]); %读取每张图片
end
扩展资料:
注意事项
imgDir返回的是一个结构体,包含每个图片name(名称),date(日期),bytes(字节数),isdir(是否为文件夹/目录),datenum(修改日期,连续日期号码)。一般我们仅需使用图片名称就可以完成图片遍历的工作
需要先遍历所有子文件夹,然后依次再遍历每个子文件夹下的图片。程序如下:
imgDataPath = 'E:/imageData/';
imgDataDir = dir(imgDataPath); % 遍历所有文件
for i = 1:length(imgDataDir)
if(isequal(imgDataDir(i).name,'.')||... % 去除系统自带的两个隐文件夹
isequal(imgDataDir(i).name,'..')||...
~imgDataDir(i).isdir) % 去除遍历中不是文件夹的
continue;
end
imgDir = dir([imgDataPath imgDataDir(i).name '/*.jpg']);
for j =1:length(imgDir) % 遍历所有图片
img = imread([imgDataPath imgDataDir(i).name '/' imgDir(j).name]);
end
end
参考技术A这个简单,参考如下:
imgPath='E:/imageData/';%图像库路径
imgDir=dir([imgPath'*.jpg']);%遍历所有jpg格式文件
fori=1:length(imgDir)%遍历结构体就可以一一处理图片了
img=imread([imgPathimgDir(i).name]);%读取每张图片
扩展资料:
需要先遍历所有子文件夹,然后依次再遍历每个子文件夹下的图片,程序如下。
imgDataPath='E:/imageData/';
imgDataDir=dir(imgDataPath);%遍历所有文件
fori=1:length(imgDataDir)
if(isequal(imgDataDir(i).name,'.')||...%去除系统自带的两个隐文件夹
isequal(imgDataDir(i).name,'..')||...
~imgDataDir(i).isdir)%去除遍历中不是文件夹的
continue;
end
imgDir=dir([imgDataPathimgDataDir(i).name'/*.jpg']);
forj=1:length(imgDir)%遍历所有图片
img=imread([imgDataPathimgDataDir(i).name'/'imgDir(j).name]);
end
end
ImgDir返回一个包含每个图像名称、日期、字节、isdir和datenum的结构。一般情况下,我们只需要用图片的名称来完成图片的遍历工作
参考技术B clc;clear all;
maindir = 'E:\\Temp Folder';
subdir = dir( maindir ); % 先确定子文件夹
for i = 1 : length( subdir )
if( isequal( subdir( i ).name, '.' ) || ...
isequal( subdir( i ).name, '..' ) || ...
~subdir( i ).isdir ) % 如果不是目录跳过
continue;
end
subdirpath = fullfile( maindir, subdir( i ).name, '*.jpg' );
images = dir( subdirpath ); % 在这个子文件夹下找后缀为jpg的文件
% 遍历每张图片
for j = 1 : length( images )
imagepath = fullfile( maindir, subdir( i ).name, images( j ).name )
% imgdata = imread( imagepath ); % 这里进行你的读取操作
end
end本回答被提问者和网友采纳 参考技术C
1、首先需要知道matlab读取图片的函数是imread函数,在命令行窗口中输入help imread,可以看到函数的用法。
2、在命令行窗口中输入“I=imread('1.png');subplot(2,2,1);imshow(I)”代码,如下图所示。
3、按回车键之后,可以看到matlab已经读取了图片,如下图所示。
4、也可以使用I=rgb2gray(I)代码,将图片变成灰色,如下图所示。
5、按回车键之后,可以看到已经将图片转成灰色图像了,根据需要处理图片,如下图所示。
参考技术D 用循环吧,将jpg名字命名为1,2,3,4,5,6.按顺序读取追问谢谢,但是我希望的是读的是一个文件夹下的多个子文件夹中的多个图片,也就是每个子文件夹中有多个图片,而且名字不能改,因为名字是图片的类型,我之后的处理会用到名字作为识别~~
追答后缀是图片的类型吧,那你各个子文件夹的名字是否有关联,每个子文件夹中的图片是否都是一种类型的?
追问不好意思回复晚啦,各自子文件夹的名字也是没有关联的,图片都是一种类型~
以上是关于MATLAB怎样把读取的数据间的多个空格变为一个的主要内容,如果未能解决你的问题,请参考以下文章