使用 fprintf 我想产生一个看起来像这样的输出:



这是我尝试用来实现此目的的代码:

names= {'abc','def','ghi'}
numbers = [1 2 3];
fprintf('names %s and numbers %2.2f \n',names{1:3},numbers)

不幸的是,它产生的输出如下所示:



有谁知道如何解决这个问题?或者甚至可以将 fprintf 与单元阵列结合起来?提前致谢

最佳答案

看看您传递给 fprintf 的内容,它只是顺序错误,并且 numbers 创建了一个参数而不是三个单独的参数:

>> names{1:3},numbers

ans =

abc


ans =

def


ans =

ghi


numbers =

     1     2     3

而是使用:
C=names
C(2,:)=num2cell(numbers)
fprintf('names %s and numbers %2.2f \n',C{:})

如果您在 C{:} 中输入,您将按顺序看到各个参数:
>> fprintf('names %s and numbers %2.2f \n',C{:})
names abc and numbers 1.00
names def and numbers 2.00
names ghi and numbers 3.00

>> C{:}

ans =

abc


ans =

     1


ans =

def


ans =

     2


ans =

ghi


ans =

     3

关于matlab - 将 fprintf 与双数组和元胞数组结合使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35486219/

10-13 07:24