How to copy cell data to a matrix?

4 vues (au cours des 30 derniers jours)
Navid Mohammad Imran
Navid Mohammad Imran le 11 Août 2020
Commenté : hosein Javan le 11 Août 2020
I have a text file where I use to read comma-delimited data into a cell array. The text file contains multiple lines of data so now I want to run a loop to copy some of the data read to the 2-D cell array into a matrix. This is a snippet of my code:
A = zeros(4,6);
%Read data
while ischar(c)
c = textscan(fileID,'%s %s %s %s',6,'Delimiter',',');
end
for j = 1:6
for i = 1:4
if mod(j,2) == 0
A(i,j) = c{3}{i};
else
A(i,j) = c{4}{i};
end
end
end
I keep getting this error:
the size of the left side is 1-by-1 and the size of the right side is 1-by-8
This is a sample of the text file I am reading with textscan:
10,2008-02-02 13:32:03,116.44457,39.92157
10,2008-02-02 13:33:58,116.44043,39.9219
Can you tell me how to fix this? I have tried using but it gives me the following message:
cell2mat is not supported for cell arrays containing cell arrays or objects.

Réponse acceptée

hosein Javan
hosein Javan le 11 Août 2020
Modifié(e) : hosein Javan le 11 Août 2020
the problem is with the date/time format which contains ":" and "-'. if you need matrix you can simply avoid these.
c='';
fileID = fopen('scan1.txt'); % file that contains formatted data
while ischar(c)
c = textscan(fileID,'%f,%f-%f-%f %f:%f:%f,%f,%f');
end
c = cell2mat(c)
ans =
10 2008 2 2 13 32 3 116.44 39.922
10 2008 2 2 13 33 58 116.44 39.922
  2 commentaires
Navid Mohammad Imran
Navid Mohammad Imran le 11 Août 2020
Thank you, this works for me.
hosein Javan
hosein Javan le 11 Août 2020
you're welcome.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Produits


Version

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by