Error with Plotting Tall table Column Data "Tall inputs must be real column vectors."
Afficher commentaires plus anciens
I'm trying to plot data stored in a tall array accross several columns.
% Expected Behavior
t = table(1:1000);
figure;
plot(t.Var1(1,:)); % Works as expected
% Converting to tall table yields error
tallt = tall(t);
plot(tallt.Var1(1,:));
% Error using matlab.graphics.chart.primitive.tall.Line/doPlot
% Tall inputs must be real column vectors.
%
% Error in matlab.graphics.chart.primitive.tall.Line
%
% Error in tall/plot (line 84)
% htemp = matlab.graphics.chart.primitive.tall.Line('YData', y, ...
% Work around
plot(gather(tallt.Var1(1,:)));
Is there a fix that doesn't involve reading the tall array into memory?
3 commentaires
Edric Ellis
le 10 Juin 2019
tall arrays are expected to be large only in the first dimension. That's why the plot method for tall arrays has the restriction mentioned in that error message. The expected use-case is more like this:
tallt = tall(table((1:1000)'));
plot(tallt.Var1);
Rows of a tall array are already required to fit into memory, so calling gather when plotting a single row shouldn't cause any problems. Could you give any more details about what you're trying to do in your real code?
Christopher Greulich
le 13 Juin 2019
Christopher Greulich
le 13 Juin 2019
Réponses (0)
Catégories
En savoir plus sur Tall Arrays dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!