Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 在matlab中加载文本数据_Image_Matlab_Signal Processing - Fatal编程技术网

Image 在matlab中加载文本数据

Image 在matlab中加载文本数据,image,matlab,signal-processing,Image,Matlab,Signal Processing,我有一些文本文件(1.txt,2.txt,…,60.txt),它们都有5行标题。我使用以下代码,但它无法识别标题并导入所有数据。我如何说matlab开始从特定行导入 num_txt=60; input_dir='C:\data'; filenames=dir(fullfile(input_dir,'*.txt')); i=1; for n=1:num_txt filename=fullfile(input_dir, filenames(n).name); img=imp

我有一些文本文件(1.txt,2.txt,…,60.txt),它们都有5行标题。我使用以下代码,但它无法识别标题并导入所有数据。我如何说matlab开始从特定行导入

num_txt=60;
input_dir='C:\data';

filenames=dir(fullfile(input_dir,'*.txt'));
i=1;
for n=1:num_txt    
    filename=fullfile(input_dir, filenames(n).name);
    img=importdata(filename);     
    data(:,i)=img(:);
    i=i+1;
end
具有两个附加参数:delimiterIn和HeaderLineIn

因此您使用(假设tab作为分隔符):

我还建议预先分配
数据
矩阵

请注意,要使代码正常工作,请确保所有输入文件的大小相同。否则您将在
数据(:,n)=img(:)中得到错误(是,使用
n
而不是
i

对于上述两个问题,您可以将其插入到循环中:

if n==1
    data = zeros(numel(img),num_txt);
else
    assert(numel(img)==size(data,1),'sprintf('File %s has different size', filenames(n).name))
end

如果您了解基本知识,并且不想花太多时间在如何使用MATLAB阅读文本上,我建议您使用readtext.m Find。但是如果你正在学习,我建议你自己做。

tnx,但是我如何将我的所有数据存储在data(:,I)=img(:);??因为每次导入都会生成一个单独的文件!我希望所有导入的数据都在一个矩阵中。我编辑后看到了你的评论
img(:)
将单个文件中的所有数据拉伸到一个列向量中。因此,假设您的
数据
矩阵包含所有文件。实际上,您需要使用索引
n
,而不是
i
<代码>数据(:,n)=img(:)
。你不需要
i=i+1语句。您还可以将所有数据存储到3D数组中:
data(:,:,n)=img。相应地预先分配。
if n==1
    data = zeros(numel(img),num_txt);
else
    assert(numel(img)==size(data,1),'sprintf('File %s has different size', filenames(n).name))
end