Хранить строки разных размеров в массиве MATLAB? - PullRequest
4 голосов
/ 28 июня 2011

Я хочу иметь возможность хранить ряд строк разных размеров, таких как

userinput=['AJ48 NOT'; 'AH43 MANA'; 'AS33 NEWEF'];

Это, конечно, возвращает ошибку, так как количество столбцов в строке отличается.Я знаю, что все, что нужно для этого, - это наличие достаточного пространства в первом и втором рядах.Однако мне нужно иметь возможность поместить это в массив, не заставляя пользователя добавлять эти пробелы самостоятельно.Есть ли команда, которая позволяет мне сделать это?Если возможно, я бы также хотел узнать, почему эта проблема не возникает с числами, например

a=[1; 243; 23524];

Ответы [ 2 ]

8 голосов
/ 28 июня 2011

Вы не можете сделать это со стандартными массивами Matlab.Строка - это просто вектор символов в Matlab.И у вас не может быть матрицы со строками разной длины.

Однако вы можете использовать массив ячеек :

userinput={'AJ48 NOT'; 'AH43 MANA'; 'AS33 NEWEF'};

disp(userinput{1});

Имейте в виду, что существует много ситуацийгде массивы ячеек не работают как обычные массивы.

1 голос
/ 28 июня 2011

Чтобы просто ответить на вашу последнюю часть вашего вопроса; просто потому, что строки могут быть переменной длины, но числа (в Matlab) имеют фиксированную длину. Это одна из основных идей массивов, позволяющая им содержать только объекты фиксированного размера (например, из-за необходимости эффективного поиска), см. Больше по теме здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...