Loop through csv file -- please help
Afficher commentaires plus anciens
%Hi! I am trying to step through a csv file to covert each video time into a frames. Ideally, I want to rewrite a new column in the csv column to be the converted frames. The video times are not equally incremented. The data is in a %csv file. frame = ([time in csv file]*Tframe)/Vtime where Tframe is total frames & Vtime is the total video time. Thanks!
%Video time to frames
%user entered data
Vtime = input('Length of video: '); %total length of video
Tframe = input('Total # of frames: '); %total number of frames
fid=fopen('test.csv', 'r')
k=length(fid);
while ~feof(fid)
k=k+1;
Z{k}=fgetl(fid);
frame = (Z{k}*Tframe)/Vtime;
end
fclose(fid)
x=[frame]
%The wrong values and the wrong number of values are being returned. Thanks for your help!
1 commentaire
Image Analyst
le 4 Avr 2022
What is in the CSV file? Individual frame times, or image data? Or both?
Réponse acceptée
Plus de réponses (1)
Image Analyst
le 4 Avr 2022
1 vote
fid is the file handles so there is no reason to set k equal to it and have it be some kind of line counter.
Use readmatrix() or csvread() to read in the data from the CSV file, not fgetl(). You'll get the whole matrix at once and don't need to get it a line at a time. Your Z{k} would be a text string anyway, so that doesn't make sense.
1 commentaire
Jenna Ceraso
le 4 Avr 2022
Catégories
En savoir plus sur Animation dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!