Хранение целых чисел в массивах ячеек в Matlab - PullRequest
0 голосов
/ 21 ноября 2011

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

Текстовый файл содержит следующее:

1976787196
8
1976945848
8
1977105448
8

И содержимое массива ячеек, в которомвыше хранятся следующие значения:

  Columns 1 through 3

                1976787196           681405151445000                1976945848

  Columns 4 through 6

           685476780441608                1977105448           685476780441608

Как видите, вместо записи 8 я получаю очень большое целое число.массивы я создаю, чтобы содержать только 32-разрядные целые числа.Могу ли я как-то указать это требование?Заранее спасибо!

1 Ответ

0 голосов
/ 21 ноября 2011

Зависит от того, как вы читаете данные из текстового файла. Попробуйте использовать функцию TEXTSCAN . Строка формата "% u32" указывает, что вы хотите прочитать 32-разрядные целочисленные данные без знака.

filename = 'test.txt';
fid = fopen(filename,'r');
x = textscan(fid,'%u32','delimiter','\t','CollectOutput',1);
x = x{1};
fclose(fid);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...