arrayDatastore Read cut dimension
5 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
For a segmentation task I have a Hx Wx M items as matrix, I gonna convert into a logical array.
I would like to read these items into an arrayDatastore and tried following (simplified code):
for counter = 1:20
A= magic(10);
resultItem= cat(3,A,A,A);
result(counter,:,:,:)=resultItem;
end
result=logical(result<5& result>2);
ds=arrayDatastore(result,"ReadSize",1,"OutputType","same");
The read funktion sadly delivers a 1x4 dimensional array instead of 1x3. How can I clipp the first dimension - the counter - away ?
Or any other solution how to read everything into an arrayDatastore during a loop?
0 Commenti
Risposte (1)
Walter Roberson
il 18 Apr 2022
result(:,:,:,counter)=resultItem;
2 Commenti
Walter Roberson
il 18 Apr 2022
Sorry, it does not appear to be possible. The closest appears to be that you can return a scalar cell that is 3 dimensions. If you need a numeric return instead of a scalar cell then you are going to get a 4 dimensional object that you would then have to reshape() or permute() or squeeze()
for counter = 1:20
A = magic(10);
resultItem = cat(3,A,A,A);
result(:,:,:,counter) = resultItem;
end
result = logical(result<5& result>2);
ds = arrayDatastore(result,"ReadSize", 1, "OutputType", "cell", "IterationDimension", 4);
test1 = read(ds);
test2 = read(ds);
whos
size(test1{1})
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!