how to solve an error ?
1 次查看(过去 30 天)
显示 更早的评论
hi, I have written a code for text input files. everything is working fine except last 3 lines of code!!! i am getting this error
///////////////////////// Error using cat Dimensions of matrices being concatenated are not consistent.
Error in cell2mat (line 83) m{n} = cat(1,c{:,n}); ////////////////////////////////////////////
what I just want to do is to get/convert the data from cell 'alldata' to simple array 'rawdata' using cell2mat I tried so much I don't know what is the problem. I have attached the files also. please help. so much frustrated.
% read all text file from folder
clear all
close all
clc
initialdir = cd();
set(0, 'DefaultAxesFontSize',15)
list = dir('*.txt');
delimiter = '\t';
formatSpec = '%s%s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%s%s%s%[^\n\r]';
alldata = [];
for file = 1:length(list)
fid = fopen(list(file).name);
dataArray = textscan(fid, formatSpec, 'Delimiter', delimiter, 'ReturnOnError', false);
%%Close the text file.
fclose(fid);
%%Convert the contents of columns containing numeric strings to numbers.
raw = repmat({''},length(dataArray{1}),length(dataArray)-1);
for col=1:length(dataArray)-1
raw(1:length(dataArray{col}),col) = dataArray{col};
end
raw(1,:) = [];
alldata = [alldata;raw];
end
rawdata(:,1) = datenum((alldata(:,1)),'yyyy-mm-dd') + datenum(alldata(:,2),'HH:MM') - datenum('00:00','HH:MM'); rawdata(:,2) = str2num(cell2mat(alldata(:,3)));
rawdata(:,3) = str2num(cell2mat(alldata(:,4)));
rawdata(:,4) = str2num(cell2mat(alldata(:,5)));
0 个评论
采纳的回答
更多回答(1 个)
Jan
2018-5-15
If you post the complete error message, the readers can know, which line is failing. I guess it is:
rawdata(:,2) = str2num(cell2mat(alldata(:,3)));
You have padded the raw data with empty string ''. Then cell2mat tries to create a CHAR matrix, but the rows or columns have inconsistent lengths. One solution can be to apply str2num directly on the cell array. Or better use the safer str2double. In addition you might want to pad the data with '0'.
Is creating a matrix from the single columns of dataArray really useful, if all you want to do is to split it up to columns afterwards again?
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Text Files 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!