Передача содержимого Массивов ячеек к функциям

Эти примеры показывают несколько способов передать данные от массива ячеек до функции MATLAB®, которая не распознает массивы ячеек как входные параметры.

Передача содержимого отдельной ячейки путем индексации с фигурными скобками, {}.

Этот пример создает массив ячеек, который содержит текст и 20 2 массив случайных чисел.

randCell = {'Random Data', rand(20,2)};
plot(randCell{1,2})
title(randCell{1,1})

Постройте график только первого столбца данных путем индексации далее в содержимое (многоуровневая индексация).

figure
plot(randCell{1,2}(:,1))
title('First Column of Data')

Объединение числовых данных от нескольких ячеек с помощью функции cell2mat.

Этот пример создает 5 2 массив ячеек, который хранит температурные данные для трех городов и строит график температур для каждого города по дате.

temperature(1,:) = {'01-Jan-2010', [45, 49, 0]};
temperature(2,:) = {'03-Apr-2010', [54, 68, 21]};
temperature(3,:) = {'20-Jun-2010', [72, 85, 53]};
temperature(4,:) = {'15-Sep-2010', [63, 81, 56]};
temperature(5,:) = {'31-Dec-2010', [38, 54, 18]};

allTemps = cell2mat(temperature(:,2));
dates = datenum(temperature(:,1), 'dd-mmm-yyyy');

plot(dates, allTemps)
datetick('x','mmm')

Передайте содержимое нескольких ячеек как список, разделенный запятыми к функциям, которые принимают несколько входных параметров.

Этот пример строит график X против Y и применяет стили линии от 2 3 массива ячеек C.

X = -pi:pi/10:pi;
Y = tan(sin(X)) - sin(tan(X));

C(:,1) = {'LineWidth'; 2};
C(:,2) = {'MarkerEdgeColor'; 'k'};
C(:,3) = {'MarkerFaceColor'; 'g'};

plot(X, Y, '--rs', C{:})

Похожие темы

Была ли эта тема полезной?