Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

将元胞数组的内容传递给函数

以下这些示例演示了将元胞数组中的数据传递给无法将元胞数组识别为输入的 MATLAB® 函数的多种方法。

通过使用花括号 {} 进行索引来传递单个元胞的内容

此示例创建一个包含文本的元胞数组和一个由随机数组成的 20×2 数组。

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

Figure contains an axes. The axes with title Random Data contains 2 objects of type line.

通过进一步对内容进行索引(多级索引)来仅绘制数据的第一列。

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

Figure contains an axes. The axes with title First Column of Data contains an object of type line.

使用 cell2mat 合并多个元胞中的数值数据

此示例创建一个 5×2 元胞数组(存储三个城市的温度数据)以及按日期绘制每个城市的温度图。

temperature(1,:) = {'2020-01-01', [45, 49, 0]};
temperature(2,:) = {'2020-04-03', [54, 68, 21]};
temperature(3,:) = {'2020-06-20', [72, 85, 53]};
temperature(4,:) = {'2020-09-15', [63, 81, 56]};
temperature(5,:) = {'2020-12-31', [38, 54, 18]};

allTemps = cell2mat(temperature(:,2));
dates = datetime(temperature(:,1));

plot(dates, allTemps)

Figure contains an axes. The axes contains 3 objects of type line.

将多个元胞的内容作为以逗号分隔的列表传递给函数

此示例绘制 XY 的图,并基于一个 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{:})

Figure contains an axes. The axes contains an object of type line.

相关主题