For command in function
Mostra commenti meno recenti
I have a function attached and would like it to automatically run it with x = 2:4 & y = 2:4, that is, the function to run 8 times & have 8 outputs, with inputs
x =2, y = 2
x = 2, y = 3
x = 2, y = 4
x = 3, y = 2
...
Should I write a 'for' command with the function? It does not seem to work the best this way.
10 Commenti
Stephen23
il 3 Set 2019
"It does not seem to work the best this way. "
You could use a loop, but it is often simpler and more efficient to write vectorized code:
Rik
il 3 Set 2019
And if you vectorize it, you can use implicit expansion, or use ndgrid to generate all combinations.
Walter Roberson
il 4 Set 2019
You are attempting to compare a 621 x 1 vector to a 3 x 3 array output by ndgrid
Cside
il 4 Set 2019
darova
il 4 Set 2019
What is length of dataset_pfc_tar_57_n1?
Cside
il 4 Set 2019
darova
il 4 Set 2019
Each value of (x,y) you want to compare to rowsncolumn?
>> combvec([2:4],[2:4])
ans =
2 3 4 2 3 4 2 3 4
2 2 2 3 3 3 4 4 4
If i understood you correctly output matrix should be of size 621 x 9 ?
Cside
il 4 Set 2019
Walter Roberson
il 4 Set 2019
After you use ndgrid to build x y you can
x = permute(x, [3 1 2])
and the same for y. Then assuming R2016b or later, the & would give a 3d result, 621 by 3 by 3
Now take that and .* by dataset and sum along the first dimension. Then sum the result of the & itself along the first dimension to get counts. ./ the two qualities. You should now have a 1 x 3 x 3 array of means.
Risposta accettata
Più risposte (0)
Categorie
Scopri di più su Matrix Indexing 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!