使用 for 循环打印元胞数组中的信息

Printing information from a cell array with for loops

我正在尝试在此处创建一个名为 'crewsize' 的函数,它采用空域元胞数组(元胞数组 'airspace' 将在下面显示),输出将使用 fprintf a table的航班号和机组人数。 空域单元阵列看起来像这样

airspace = 

'BF 123'     [  515.2000]    [ 90]    [154]    'Behnam Jane Jill...'    'Montreal'       [22000]    [1x2 double]
'VS0 456'    [   99.6000]    [270]    [ 31]    'Frances, Jake, J...'    'Los Angeles'    [21000]    [1x2 double]
'BF 8421'    [1.5057e+03]    [170]    [  0]    'Giuseppe, Susan'        'Calgary'        [33000]    [1x2 double]
'AB 896'     [       500]    [ 90]    [132]    'Hao, Ashraf, Sue'       'Montreal'       [33000]    [1x2 double]

本题可以忽略[1x2双列]。 至于功能,我完全迷路了,不确定如何从我的代码开始,我不明白 fprintf 的概念,真的很想得到一些帮助! 到目前为止,我的函数代码是:

function crewsize(airspace)
for k = 1:4
a = airspace(k);
b = airspace{k,5};
fprintf('Flight Number  Crew Size\n %5.1f %5.1f',a,b)

如有任何帮助,我们将不胜感激。同样,对于输出,我试图只打印航班号(第一列)和该机组人员的人数(第五列)

谢谢大家!

您应该使用 %s%i 格式规范(对于字符串和整数)。从字符串中计算船员人数也有一点困难,但您可以使用 strsplit(在最近的版本中)或 regexp 函数。

实践中:

function crewsize(airspace)

for k = 1:4
    a = airspace{k,1};
    b = numel(regexp(airspace{k,5}, ' ', 'split'));
    fprintf('Flight Number: %s - Crew Size: %i\n',a,b);
end

最佳,