Is there any way to load parts of a large table from a mat-file?

조회 수: 7 (최근 30일)
MSTK
MSTK 2017년 6월 14일
댓글: MSTK 2017년 6월 14일
I a trying to load parts of a very large table using subindexing.
f=matfile(fileName);
sub=f.X(1:10,:);
I get the following error: The variable 'X' is of class 'table'. To use 'X', load the entire variable. Why? Should I store tables in a different format than matfiles?
M
  댓글 수: 3
MSTK
MSTK 2017년 6월 14일
Sure, as a workaround that would do. However, the main advantage of the matfile functionality is to subindex variables that are too large to fit in memory. It seems quite strange that this is not implemented for tables.
Adam
Adam 2017년 6월 14일
There are limitations on how you can index into ordinary arrays also - e.g. you have to use contiguous indices. These limitations may cause tables to be unsupported based on how they are stored.

댓글을 달려면 로그인하십시오.

채택된 답변

Steven Lord
Steven Lord 2017년 6월 14일
This is one of the documented limitations of the matfile object.
" matfile does not support indexing into:
  • Variables of tables"
Since you're working with data that's too big to fit in memory, you should explore if tall arrays satisfy your needs. You can create tall table arrays as shown in the "Creating Tall Tables" section of that documentation page.
  댓글 수: 1
MSTK
MSTK 2017년 6월 14일
Ok, hopefully to be changed by Mathworks in a future release.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Workspace Variables and MAT Files에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by