I need to analyze data from csv file in Matlab. Since csv file is large Matlab struggles with compilation. What can I do to make it more efficient?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Pirimze Okriashvili
el 16 de Dic. de 2016
Comentada: Pirimze Okriashvili
el 16 de Dic. de 2016
Code reads particular rows from excel inside for loop and puts them into matrix. I need to operate with this matrix but Matlab takes forever to compile it. Here is what I'm currently using:
n = 0;
A = zeros(N1, 40);
B = zeros(N1, 40);
C = zeros(N1, 40);
for m = start: N: fin
n = n + 1;
section1 = ['B', num2str(m), ':AO', num2str(m)];
A(n,:) = xlsread(fileName, section1);
section2 = ['B', num2str(m+1), ':AO', num2str(m+1)];
B(n,:) = xlsread(fileName, section2);
C(n,1) = A(n,1) - B(n,1);
for k = 2:40
C(n,k) = C(n,k-1) + (A(n,k) - B(n,k));
end
end
N1 is large number so that matrices are big. Is there any other efficient way to do this?
0 comentarios
Respuesta aceptada
José-Luis
el 16 de Dic. de 2016
Ouch!
Don't call xlsread inside a loop. You're always opening the same file, as far as I can see. Just load once and read from that.
Más respuestas (0)
Ver también
Categorías
Más información sobre Spreadsheets en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!