使用for循环从单元阵列打印信息

时间:2015-04-01 19:04:32

标签: arrays matlab printf cell-array

我试图在这里创建一个名为“crewsize'采用空域单元阵列(单元阵列'空域'将在下面显示),输出将使用fprintf打印一张飞行编号表和机组人员数。 空域单元阵列看起来像这样

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)

对此的任何帮助将不胜感激。同样,对于输出我试图仅打印航班号(第1列)和该机组人员数(第5列)

谢谢大家!

1 个答案:

答案 0 :(得分:1)

您应该使用%s%i formatSpecs(用于字符串和整数)。计算字符串中的机组成员数量也有一些困难,但您可以使用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

最佳,