Siéntete libre de compartir nuestro sitio y códigos en tus redes, ayúdanos a ampliar nuestra comunidad.
Solución:
Usando la octava 3.8.2
>> format long g
>> dlmread ('test.csv',' ',2,0)
ans =
0 0 0 -20 70668.2
0 0 0 -19 65875
0 0 0 -18 61411.9
0 0 0 -17 57256.4
General, use dlmread si su separador de valores no es una coma. Además, tienes que saltarte los dos titulares. dlmread teórico también funciona con valores separados por tabulaciones 't'
pero esto falla con su ejemplo dado, debido al tamaño de pestaña discontinuo (tal vez es solo un problema de copiar y pegar), por lo que toma un espacio ' '
como separador es una solución. es mejor que guardes tu archivo .csv separado por comas
Wavelength= 88.7927 m
Time Height Force(KN/m)
0, -20, 70668.2
0, -19, 65875
0, -18, 61411.9
0, -17, 57256.4
Entonces puedes hacer fácilmente dlmread('file.csv',',',2,0)
.
Puede probar mi función csv2cell (¡no debe confundirse con csv2cell del paquete io!) (nunca la probé <3.8.0).
>> str2double(reshape(csv2cell('test.csv', ' +',2),3,4))'
ans =
0 -20 70668.2
0 -19 65875
0 -18 61411.9
0 -17 57256.4
Por lo general, se remodelaba con éxito automáticamente, pero en el caso de los separadores de espacios, a menudo fallaba, por lo que debe remodelarlo usted mismo (y convertirlo al doble en cualquier caso).
Y cuando necesites tu titular
>> reshape(csv2cell('test.csv', ' +',1),3,5)'
ans =
[1,1] = Time
[2,1] = +0
[3,1] = +0
[4,1] = +0
[5,1] = +0
[1,2] = Height
[2,2] = -20
[3,2] = -19
[4,2] = -18
[5,2] = -17
[1,3] = Force(KN/m)
[2,3] = 70668.2
[3,3] = 65875
[4,3] = 61411.9
[5,3] = 57256.4
Pero cuidado, entonces todo es un string en tu celda
No está almacenando su nombre de archivo .csv como un string. Tratar:
filename = 'linear_wave_loading.csv';
Nos encantaría que puedieras dar difusión a esta crónica si si solucionó tu problema.