вам придется сделать некоторые изменения, но другой вариант для вас будет, вы можете использовать fread.
Но, как уже упоминалось, это, по сути, блокирует вас в прямоугольном импорте. Таким образом, другой вариант будет использовать текстовое сканирование. Как я упоминаю в другом примечании, я не уверен на 100%, когда это было реализовано, все, что я знаю, это то, что у вас нет «importdata ()»
fid = fopen('textfile.txt')
Out = textscan(fid,'%s','delimiter',sprintf('\n'));
fclose(fid)
с использованием текстового сканирования вы сможете получить массив ячеек символов для каждой строки, которыми затем сможете манипулировать по своему усмотрению. И, как я говорю в моих комментариях, это уже не имеет значения, одинаковой ли длины строки или нет. ТЕПЕРЬ вы можете быстрее проанализировать массив ячеек. Но, как упоминает gnovice, и у него тоже есть очень элегантное решение, вам, возможно, придется задуматься о требованиях к памяти.
Единственное, что вы никогда не захотите использовать в Matlab, если можете избежать этого, - это циклические структуры. Они быстры в C / C ++ и т. Д., Но в matlab они - самый медленный способ добраться туда, куда вы идете.
РЕДАКТИРОВАТЬ: Просто посмотрел, и похоже, что текстовое сканирование БЫЛО реализовано буквально в версии 7 (R14), так что если это то, что у вас есть, вы должны использовать это.