Improving the speed of code with passing to a function input a cell array or structure.
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
George Bashkatov
el 3 de Abr. de 2021
Comentada: George Bashkatov
el 4 de Abr. de 2021
I'm trying to pass some amount of numerical data as a function input.
I had that row in my code:
[z1,y1]=ode45(@(z,y) famplifire(sigma_pa,N0,sigma_pe,sigma_se,k,y,z),zspan,startval);
I'm trying to replace four parameters: sigma_pa,N0,sigma_pe,sigma_se. I've tryed to replace them with cell array, but the time of execution of code nevertheless rises. So I had some questions:
1) Using of cell arrays insted of usual numerical data can improve quickness of my code?
2) I had another idea to use a struct, but I don't know how. If you can, give me some advices (or simple examples) please. Or I can make another question with my code.
0 comentarios
Respuesta aceptada
Matt J
el 3 de Abr. de 2021
Editada: Matt J
el 3 de Abr. de 2021
We can't see what famplifire [sic.] is doing with your variables so there isn't any specific comments that can be made. However, the rule of thumb is basically that if you must loop through a small number of large arrays/matrices, it can be advantageous to hold them in cells. Otherwise, it is probably better to concatenate them into a single array.
Structures are essentially the same as cell arrays. They are just indexed differently.
3 comentarios
Matt J
el 3 de Abr. de 2021
If the C{i} are all scalars, it would be better if C were numeric rather than a cell array
Más respuestas (0)
Ver también
Categorías
Más información sobre Structures 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!