Create mfile for a loop function
Mostra commenti meno recenti
I was wondering if it is possible to create a function in mfile format for the bellow code (b0_T03_s is a table):
% to find x velocity and x position for bike #0
for i= 0:1:23;
b0_T03_s(2+i,25) = b0_T03_s(1+i,25) + b0_T03_s(1+i,23);
b0_T03_s(2+i,24) = b0_T03_s(1+i,24) + b0_T03_s(1+i,25) + (0.5*b0_T03_s(1+i,23));
end
2 Commenti
Abderrahim. B
il 21 Lug 2022
HI!
Do you mean to convert this snap of code into a MATLAB function?
Reem RA
il 21 Lug 2022
Risposte (1)
Cris LaPierre
il 21 Lug 2022
0 voti
Yes, it's possible. See this page on creating live functions in a live script using the Refactor tool.
The orginal and refactored code must be live scripts (.mlx file type) to use this tool, but once created, you can save as *.m if necessary.
6 Commenti
Reem RA
il 21 Lug 2022
Reem RA
il 21 Lug 2022
Cris LaPierre
il 21 Lug 2022
No, it's because you are creating an array inside your for loop.
b0_T03_s(2+i,25)
The suggestion to preallocate means to create your variable of the desired final size first using dummy values (0s, 1s, nans, etc).
b0_T03_s = zeros(25);
for ...
You many need to adjust this code depending on if b0_T03_s has some values you want to keep, but this is the idea. In the end, what you are seeing is just a warning, not an error, so you can also just ignore it.
Reem RA
il 21 Lug 2022
Cris LaPierre
il 22 Lug 2022
I suggest taking a look at this page: https://www.mathworks.com/help/matlab/matlab_prog/create-functions-in-files.html
You will need to keep in mind varible scope. Function only have access to the variables passed in as inputs or that are created inside the function.
Reem RA
il 22 Lug 2022
Categorie
Scopri di più su Loops and Conditional Statements in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!