How to vectorize function on vectors stored in 3D tensor
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Noya Linder
il 1 Ott 2023
Commentato: Dyuman Joshi
il 3 Ott 2023
Hi everyone.
I have a function that sums the 3rd dimension as presented here.
This is the code:
function sumeol = sum_over_line(tau, L, zstruct, rstruct, P)
before = zeros(P.Ntimes_An, rstruct.rlength);
for i=1:P.Ntimes_An
for j=1:rstruct.rlength
for k=1:zstruct.zlength-2
before(i, j) = before(i, j).*(1-1./(exp(tau(i, j, k)))) + L(i, j, k);
end
end
end
sumeol = before;
end
I would like to vectorize it - meaning getting rid of the loop over i and j and just having one loop so that the function will get the tensors tau and L sized aXbXc and return a matrix aXb.
How should I go about that? Thank you in advance
1 Commento
Dyuman Joshi
il 2 Ott 2023
There was a misunderstanding on my side, Sorry. I have posted a new answer, please check it.
Risposta accettata
Dyuman Joshi
il 2 Ott 2023
Try this -
function sumeol = sum_over_line(tau, L, zstruct, rstruct, P)
before = zeros(P.Ntimes_An, rstruct.rlength);
i=1:P.Ntimes_An;
j=1:rstruct.rlength;
for k=1:zstruct.zlength-2
before(i, j) = before(i, j).*(1-1./(exp(tau(i, j, k)))) + L(i, j, k);
end
sumeol = before;
end
2 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Loops and Conditional Statements in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!