MATLAB: переопределение методов table ()

НАСТРОЙКА Win7 64b, R2015b, 16 ГБ оперативной памяти, процессор i7-2700

table() этофундаментальный класс Matlab что такжезапечатанныйследовательно, я не могу подкласс его.

я бы хотелфиксировать некоторые методы этого класса иДобавить новое из них. Например,table.disp() фундаментально сломан, например Попробуйте неdisp(table(rand(1e7,1)))или забыть; в командном окне. Переменная занимает всего 76 МБ в ОЗУ, но дисплей не буферизирован, и он остановит вашу систему!

Могу япереопределение методы, такие какtable.disp() без записи вmatlabroot\toolbox\matlab\datatypes\@table?

Могу япростираться класс таблицы с новым методом подC:\MATLAB\@table\ismatrixlike.m? Почему я получаю

ismatrixlike(table)
Undefined function 'ismatrixlike' for input arguments of type 'table'. 

Очевидно, я сделал

addpath C:\MATLAB\
rehash toolboxcache

Я тоже пробовалclear all.

Путь имеет (буквенный) приоритет надmatlabroot, но отсутствуетtable.m определение класса. Если я добавлю родное определение класса вC:\MATLAB\@tableтогда я могу запустить свой новый метод (послеclear all). Тем не мение:

>> methods(table)

Methods for class table:

classVarNames   ismatrixlike    table           varfun          
convertColumn   renameVarNames  unstack      

только перечисляет методы в новом\@table папка, даже если (некоторые из) старые методы все еще работают, например,

size(table)

Это частично решает проблему, так как теперь родной\@table\private папка больше не доступна, и поэтому многие методы не работают!

Почему я это делаю? Потому что я не хочу ждать еще 2 года, прежде чемtable() фиксированный. Я уже потерял целые дни, потому что я просто забыл; в командном окне, и я не могу принудительно перезагрузить компьютер, если на нем запущены многодневные симуляции, но мне нужно дождаться окончания замены диска :(.

ПРИЛОЖЕНИЕ Больше контекста оdisp(table(rand(1e7,1))), Вот что происходит, когда я нажимаю на него (и, к счастью, я достаточно быстр, чтобы выйти из него с помощью CTRL-C):

Виновником является линия 172table.disp() который преобразует числовой массив в строку ячеек (тоже с отступом!):

[cells, err, isLeft] = sprintfc(f, x, b);

Ответы на вопрос(3)

Ваш ответ на вопрос