将MxN单元阵列重塑为1x(M * N)单元阵列MATLAB

时间:2014-12-11 14:35:45

标签: arrays matlab cell legend cell-array

我正在尝试为绘图中的图例标题创建一个单元格数组。该图重复了不同频率的实验和3种不同的传感器。我需要为每个不同的传感器和频率使用不同的颜色。因此,在下面的两个频率示例中,我最终得到一个3x2单元阵列,其中我需要一维中的数组用作图例(6x1),但我无法想象如何实现这一点。

titles = {'Radial Sensor';'Axial Sensor';'Azimuthal Sensor'};

for ii=1:3 
    for jj = 1:num_freq
        legtitles{ii,jj} = [titles{ii},' ',num2str(freq(jj)),' Hz'];
    end
end

答:

'Radial Sensor 15 Hz'       'Radial Sensor 60 Hz'
'Axial Sensor 15 Hz'        'Axial Sensor 60 Hz'
'Azimuthal Sensor 15 Hz'    'Azimuthal Sensor 60 Hz'

所以,我需要取第二行和第三行并将它们连接到第一行的末尾。

谢谢!

2 个答案:

答案 0 :(得分:1)

你可以重塑你最后的字幕:

legtitles = reshape(legtitles',1,[]);

或将您的代码重写为:

legtitles = {}
for ...
    for ...
        legtitles{end+1} = ...

答案 1 :(得分:0)

将所有行连接成一行:如果你有

legtitles = {'Radial Sensor 15 Hz'       'Radial Sensor 60 Hz';
             'Axial Sensor 15 Hz'        'Axial Sensor 60 Hz';
             'Azimuthal Sensor 15 Hz'    'Azimuthal Sensor 60 Hz'};

只需使用

legtitles = legtitles.';
legtitles = legtitles(:).';