Improving the speed of code with passing to a function input a cell array or structure.

1 visualización (últimos 30 días)
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.

Respuesta aceptada

Matt J
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
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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Structures en Help Center y File Exchange.

Productos


Versión

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by