打印长度未知的向量先验::MATLAB

打印长度未知的向量先验::MATLAB,matlab,printf,Matlab,Printf,我有3个可变长度的向量,但范围在1和5之间(包括1和5)。我需要在代码运行时打印出来(以一种“好”的方式) Nice:=我想让所有向量都以这样的方式打印,即每次迭代中每个向量的起始值都是对齐的 我尝试过的: 当前错误版本 对于它=1:长度(a) fprintf(“%4.4f”,a(it)) 结束 其他两个也一样 这使得它们没有对齐。如果第一个向量的长度只有1,那么一切都会变得一团糟 草率输出版本 我用0填充空位置并打印 for it=1:5 fprintf(' %4.4f ',a(i

我有3个可变长度的向量,但范围在1和5之间(包括1和5)。我需要在代码运行时打印出来(以一种“好”的方式)

Nice:=我想让所有向量都以这样的方式打印,即每次迭代中每个向量的起始值都是对齐的

我尝试过的:

  • 当前错误版本

    对于它=1:长度(a)

    fprintf(“%4.4f”,a(it))

    结束

其他两个也一样

这使得它们没有对齐。如果第一个向量的长度只有1,那么一切都会变得一团糟

  • 草率输出版本
我用0填充空位置并打印

for it=1:5

fprintf(' %4.4f ',a(it))

end
但这是草率的,因为它给读者留下了错误的印象。读者会认为向量是值为0的全长

但是,这会正确地打印出来。所有向量都适当对齐

样本

在我的代码中,a,b,c是数字,但假设a,b,c是字符串列表。a是我今天看到的动物,b是我午餐吃的,c是我今天去的地方。它们每天都在变化

编辑:在最后一行,大象应该是红色的(在正确的版本中)。

修改你的“草率版本”,你可以只打印空格而不是零:

for it=1:5

    if a(it) == 0
        % print 11 spaces
        fprintf('           ')
    else
        fprintf(' %4.4f ',a(it))
    end

end
修改“草率版本”,您可以只打印空格而不是零:

for it=1:5

    if a(it) == 0
        % print 11 spaces
        fprintf('           ')
    else
        fprintf(' %4.4f ',a(it))
    end

end

我不太明白你说的“对齐”是什么意思。你是想让这些数字合理吗?在小数点上对齐?你能给我们举个例子说明你的错误输出和你想要达到的正确输出吗?我不确定我理解你所说的“对齐”是什么意思。你是想让这些数字合理吗?在小数点上对齐?你能给我们举个例子说明你不正确的输出和你想要达到的正确输出吗?