lectura de datos (csv) y representacion grafica (plot)
Publicado por guhy (1 intervención) el 12/12/2013 10:39:50
Buenos dias,
Estoy haciendo un programa para leer datos de un fichero csv y mostrarlos graficamente por pantalla.
El fichero csv es el siguiente:
100%, 50%, 0%
El codigo que he implementado es el siguiente:
En el programa guardo cada valor (100, 50 y 0) en un vector (al que llamo prob) y luego lo represento graficamente teniendo en cuenta el numero de iteracion. De esta forma: el eje x del grafico debería contener las iteraciones y el eje y las probabilidades.
Problemas:
- Lectura de fichero. En vez de crearse un vector de tres posiciones (100, 50 y 0), se crea uno de cuatro (la cuarta celda es "[]")
- Plot: No puedo representar los datos. Aparece un error con el tipo de datos de entrada (es un cell array)
Alguna sugerencia?
Gracias de antemano!
Estoy haciendo un programa para leer datos de un fichero csv y mostrarlos graficamente por pantalla.
El fichero csv es el siguiente:
100%, 50%, 0%
El codigo que he implementado es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function [primera, line] = readfile()
iteracion = [1 2 3];
fi = fopen('fichero.csv', 'r');
while ~feof(fi)
line_aux = fgets(fi); %# read line by line
line = strrep(line_aux, '/t', '');
prob = {};
i = 1;
while length(line) > 1
[probability,line] = strtok(line,'%,');
intprobability = int32(str2num(probability));
prob{i} = intprobability;
i = i+1;
end
end
bar(prob, iteracion)
fclose(fi);
En el programa guardo cada valor (100, 50 y 0) en un vector (al que llamo prob) y luego lo represento graficamente teniendo en cuenta el numero de iteracion. De esta forma: el eje x del grafico debería contener las iteraciones y el eje y las probabilidades.
Problemas:
- Lectura de fichero. En vez de crearse un vector de tres posiciones (100, 50 y 0), se crea uno de cuatro (la cuarta celda es "[]")
- Plot: No puedo representar los datos. Aparece un error con el tipo de datos de entrada (es un cell array)
Alguna sugerencia?
Gracias de antemano!
Valora esta pregunta


0