Да, исходя из того, что я понял в исходном коде unstack.m
(вы можете прочитать его, набрав edit unstack
), столбцы будут в алфавитном порядке, следующем за Юникод в алфавитном порядке с помощью функции, которая преобразует идентификатор в уникальный индекс, перед проверкой , является ли идентификатор действительным .
Порядок Unicode будет означать, в частности:
- что
T10
будет до T9
.
t10
будет после T10
.
Согласно unstack
, функция, которая преобразует идентификатор в уникальный индекс subs2inds
, опирается на класс tabularDimension
, который называется
(на R2018b) временной:
%tabularDimension Internal abstract class to represent a tabular's dimension.
% This class is for internal use only and will change in a
% future release. Do not use this class.
После сортировки идентификаторов приходит проверка достоверности с помощью функции matlab.lang.makeValidName
(с использованием опции по умолчанию 'Prefix','x'
), которая изменит идентификатор, если он недопустим (по умолчанию заменяется недопустимый символ подчеркиванием). ).
Действительный идентификатор MATLAB - это символьный вектор буквенно-цифровых символов (A – Z, a – z, 0–9) и подчеркивания, так что первый символ является буквой, а длина символьного вектора меньше или равна namelengthmax
.
makeValidName
удаляет все пробельные символы перед заменой любых символов, которые не являются буквенно-цифровыми или подчеркиваниями. Если после пробела следует строчная буква, makeValidName
преобразует букву в соответствующий заглавный символ.
Например:
2A
будет изменено на x2A
.
ça
будет изменено на x_A
.
Особый случай будет рассмотрен с помощью функции matlab.lang.makeuniquestrings
.
Например, если вы спросите идентификаторы: ç1
, à1
, Matlab все равно сможет их различать и переименовывать соответственно x_1_1
, x_1
.
В вашем случае я предлагаю автоматически генерировать столбцы с постоянной начальной буквой, а затем индекс с ведущими нулями, в результате чего получается постоянное количество символов: T0001
, T0002
, ..., T0100
, ..., T9999
.