2015-02-24 1 views
0

У меня есть матрицу 3 х цифр, напримеробъединить все 3 цифры числа в строке в 1 один номер в MATLAB

102 106 100 100 100 100 100 

    106 102 100 100 100 100 100 

    106 101 120 106 109 119 108 

    104 115 107 106 109 119 108 

Я хотел бы объединить каждую строку в одно число, как и

102106100100100100100 

106102100100100100100 

106101120106109 

... и т.п. Я был бы очень признателен за любые отзывы. Спасибо :)

+0

Пожалуйста, покажите нам, как у вас «есть матрица»; это переменная? Файл? Что-то пользователь набрал? –

+0

это массив ячеек строк, спрятанный в матрицу из этих чисел выше, и сделал ту же длину –

ответ

2

Я предполагаю, что ввод представляет собой числовую двумерную матрицу.

Если вы хотите результат в виде строки (2D массив символов, где каждая строка представляет собой число):

result = num2str(A, '%i'); %// or change format specifier if the numers are not naturals 

Если вы хотите результат в числовой форме (вектор-столбец чисел):

result = str2num(num2str(A, '%i')); 
+0

Это именно то, что я хотел, спасибо вам большое! –

+0

Быстрый запрос, есть ли способ переноса результирующего вектора столбца обратно в матрицу, где каждая строка вектора столбца теперь разбивается на элементы из трехзначных чисел, как в исходном вопросе? Большое спасибо за Вашу помощь! –

+0

@FrancesBeresford Используйте 'reshape (str2num (reshape (num2str (result). ', 3, []).'), [Size (A, 2) size (A, 1)]. ''. Но обратите внимание, что некоторые из восстановленных записей могут быть неправильными из-за конечной точности 'float' –

Смежные вопросы