Поскольку в вашем массиве ячеек есть векторы различной длины, вам нужно будет перебрать их в некотором l oop (или аналогично, см. cellfun
, используемый ниже). Остальное - инициализация некоторой матрицы с вашим желаемым значением фона и установка всех «пикселей» внутри этой матрицы на желаемое значение переднего плана.
Вот небольшой фрагмент кода (протестировано с Octave 5.1.0 и MATLAB Online):
aa = {[1 2], [2 3], [1 2 3 4 5 6], [5], [1]}
% Determine needed number of rows and columns
r = size(aa, 2);
c = max(cellfun(@max, aa));
% Initialize and fill matrix
A = 255 * ones(r, c);
for I = 1:r
A(I, aa{I}) = 128;
end
% Show matrix with some colormap and labels
figure('Position', [300, 300, 800, 400]);
imagesc(A, [0, 255]);
colormap('hot');
set(gca, ...
'FontSize', 12, ...
'TickLength', [0 0], ...
'XTick', [1:c], ...
'XTickLabel', [repmat('V', c, 1) num2str([1:c].')], ...
'YTick', [], ...
'XAxisLocation', 'Top');
Результат выглядит следующим образом:
![Output](https://i.stack.imgur.com/YvmFY.png)
(Вместо того, чтобы устанавливать правильные цвета, я просто использовал некоторое изображение в градациях серого с Цветная карта здесь.)
Надеюсь, это поможет!