Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.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
使用matlab将文件夹中的数据保存为dat.file_Matlab_Save_Directory - Fatal编程技术网

使用matlab将文件夹中的数据保存为dat.file

使用matlab将文件夹中的数据保存为dat.file,matlab,save,directory,Matlab,Save,Directory,我用Matlab做了一个过滤脚本。我无法将顺序文件的输出保存为dat。文件夹中的文件。错误消息是“使用保存时出错。文件名太长”。请告诉我问题出在哪里好吗?谢谢布鲁诺 %Filtering EMG data %%Load EMG file data directory_name=uigetdir(pwd,'Select data directory'); directory_name=([directory_name '\']); % directory_save=uigetdir(pwd,'Se

我用Matlab做了一个过滤脚本。我无法将顺序文件的输出保存为dat。文件夹中的文件。错误消息是“使用保存时出错。文件名太长”。请告诉我问题出在哪里好吗?谢谢布鲁诺

%Filtering EMG data
%%Load EMG file data
directory_name=uigetdir(pwd,'Select data directory');
directory_name=([directory_name '\']);
% directory_save=uigetdir(pwd,'Select save directory');
% directory_save=([directory_save '\']);
disp(directory_name)
mkdir(directory_name,'FilterHere');
directory_save=([directory_name,'FilterHere\']);

files=dir([directory_name,'*.dat']);

if isempty(files)
msgbox('No raw files in this directory');
end
counter = 0;

for i_files=1:length(files);
filename=files(i_files).name;
[path,filename,ext] = fileparts(filename);
file = fullfile(directory_name,[filename,'.dat']);

counter = counter + 1;
disp([filename,'(',num2str(i_files),'of', num2str(length(files)), ')'])
i_u=(strfind(filename,'_'))-1;
numbers=dlmread(file);
data=numbers(:,1);
end
FileNum=1:i_files;
for  filtLow = 10;
filtHigh = 500;
Fs = 2000;
[b, a] = butter(1, [filtLow/(Fs/2), filtHigh/(Fs/2)]);
Filter = (filtfilt(b, a,data))';

dimstr=num2str(Filter);

save_data=fullfile(directory_save,[filename,'_',dimstr,'dat']);
save(save_data,'Filter', '-ASCII');
end 

问题是您的文件名太长。我猜这是因为您正在使用
fullfile
调用将筛选后的数据数组
dimstr
放入文件名中。作为一般提示,在出现错误时使用停止执行以检查工作区内容。添加'disp(保存数据),并检查变量是否包含您期望的值。感谢您的帮助。我使用dbstop if错误来立即揭示此类问题。脚本正在工作,但仅保存文件夹中的最后一个文件。我希望脚本将enter文件保存在文件夹中。保存数据=完整文件(目录保存,[文件名,''''.'数据']);disp(save_data)save(save_data、'Filter'、'-ASCII');请告诉我问题出在哪里好吗?谢谢布鲁诺谢谢Bruno@user3209872您的文件名迭代和数据保存是在单独的循环中执行的,您需要将它们组合起来。