logical indexing for dlarrays

4 Ansichten (letzte 30 Tage)
Rasmus Joussen
Rasmus Joussen am 17 Jan. 2022
Kommentiert: Rasmus Joussen am 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

Antworten (1)

Prince Kumar
Prince Kumar am 20 Jan. 2022
Bearbeitet: Prince Kumar am 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 Kommentar
Rasmus Joussen
Rasmus Joussen am 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!

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Produkte


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by