logical indexing for dlarrays

2 vues (au cours des 30 derniers jours)
Rasmus Joussen
Rasmus Joussen le 17 Jan 2022
Commenté : Rasmus Joussen le 20 Jan 2022
Hello,
I noticed that when I perform logical indexing on a formatted dlarray, it looses its format. Does anyone has an idea why this is and how I could workaround this? I want to do automatic differentiation afterwards, so I guess when the format is removed, that might be not possible.
Any help would be appreciated!
x = dlarray([1, 2, 3], "CB")
x =
1(C) × 3(B) dlarray 1 2 3
index = [true, false, true];
xNew = x(index)
xNew =
1×2 dlarray 1 3

Réponses (1)

Prince Kumar
Prince Kumar le 20 Jan 2022
Modifié(e) : Prince Kumar le 20 Jan 2022
Hi,
This is the intended behaviour once you index "dlarray".
Possible workaround is to re-apply the format. Here is the way to do it :
x = dlarray([1, 2, 3, 4, 5], "CB");
index = [true, false, true];
xNew = x(index);
xNew = dlarray(xNew, "CB")
xNew =
1(C) × 2(B) dlarray 1 3
dims(xNew)
ans = 'CB'
As you can see now, xNew will have the format as "CB".
Hope this helps.
  1 commentaire
Rasmus Joussen
Rasmus Joussen le 20 Jan 2022
I just noticed that this was mor a problem of my wrong indexing, since a CB dlarray hast two dimensions I must have to indices:
x = dlarray([1, 2, 3], "CB")
x =
1(C) × 3(B) dlarray 1 2 3
index = [true, false, true];
xNew = x(:, index)
xNew =
1(C) × 2(B) dlarray 1 3
Thank you anyway!

Connectez-vous pour commenter.

Catégories

En savoir plus sur Install Products dans Help Center et File Exchange

Produits


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by