Как объединить строку и столбец в Matlab - PullRequest
0 голосов
/ 05 марта 2020

У меня есть 1xN матрица ячеек из строк Let={'A'} {'B'} {'C'}...{N} и матрица Mx1 с двойным числом Num=[2;4;6;7;10...M]. Я хотел бы объединить каждую из строк с каждым из двойных + дополнительных символов для создания массива MxN вида

LetNum=
{'A-2*'} {'B-2*'}...
{'A-4*'} {'B-4*'}...
.
.
.

Я могу использовать for l oop с strcat, но есть ли более быстрый способ? Я смог использовать repmat:

LetNum=strcat(repmat(Let,size(Num,1),1),"-",repmat(string(Num),1,size(Let,2)),"*")

Однако код может стать длинным, поскольку Let и Num сами по себе являются многословными вызовами данных, хранящихся в другом массиве. Спасибо!

1 Ответ

3 голосов
/ 05 марта 2020

У вас есть массивы символов 1x1 внутри массива ячеек 1xN. Строки введены в R2016b и другое дело. Если у вас ≥ R2016b, вы можете использовать строки и неявное расширение следующим образом:

LetNum = cellstr(string(Let) + '-' + Num.' + '*');

Если у вас ≥ R2017a, вы можете инициализировать строки с помощью " ". Это сделает его еще короче:

LetNum = cellstr(Let + "-" + Num.' + "*");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...