Добавление текста или строки в строку матрицы - PullRequest
1 голос
/ 04 ноября 2010

У меня проблемы с добавлением метки к строкам матрицы. Вот код, который у меня сейчас есть:

Probability = ['Hole 1', US_par3_Win, par3_Draw, EU_par3_Win;
               'Hole 2', US_par3_Win, par3_Draw, EU_par3_Win]

Я добавил метки с одинарными кавычками, но получаю ошибку. Кто-нибудь может направить меня в правильном направлении? Спасибо!

Ответы [ 3 ]

3 голосов
/ 04 ноября 2010

Матрицы MATLAB могут хранить только элементы одного типа. Массивы ячеек с другой стороны не имеют этого ограничения. Я предлагаю вам оставить матрицу такой, какая она есть, и добавить еще одну переменную массива ячеек для хранения метки каждой строки. Пример:

M = [1 2 3; 4 1 2; 4 1 1];
labels = {'row1'; 'row10'; 'row100'};

%# display 2nd row and its label
M(2,:)
labels{2}
2 голосов
/ 04 ноября 2010

Если переменные, такие как US_par3_Win, являются скалярами, должно работать следующее:

Probability = {'Hole 1', US_par3_Win, par3_Draw, EU_par3_Win;...
               'Hole 2', US_par3_Win, par3_Draw, EU_par3_Win}

Однако, если переменные, например, массивы 18 на 1, их следует объединитьсначала создайте массив имен Hole

holeNames = arrayfun(@(x)sprintf('Hole %i',x),(1:18)','UniformOutput',false);  %'#

, а затем запишите как этот код* и т. д., вы просто помещаете номер отверстия в первый столбец вашего probability массива, то есть

Probability = [1, US_par3_Win, par3_Draw, EU_par3_Win;...
               2, US_par3_Win, par3_Draw, EU_par3_Win]
0 голосов
/ 04 ноября 2010

Другим подходом к организации ваших данных может быть struct . Если вы хотите пойти еще дальше, используйте классы для моделирования ваших данных.

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