显示'var1 = var2'MATLAB

时间:2013-04-29 22:07:43

标签: matlab for-loop printf

我在工作区中显示消息时遇到问题,基本上会说'var1=var2',其中var1是字符串并包含在矢量中,如下所示:

U1 = 
 u3
 v3
 u4
 v4

变量索引和变量的实际数量可能会因用户的输入而异。

var2由函数计算,并且也包含在具有相同大小的向量中,例如:

U =
    0.0625
    0.2500
         0
    0.1250

我想要显示的功能是这样的消息:

'u3=0.0625'

'v3=0.2500'

等等。

我试过了:

for l1=1:numel(U)
    n7=U1(l1);
    n8=U(l1);
    sprintf('''%f'', = ''%f''', n7, n8)
end

但这告诉我'sprintf'没有为多个输入定义。

任何人都可以帮我这个吗?当然它必须是愚蠢的东西,但我在网上找不到一个例子..

2 个答案:

答案 0 :(得分:1)

这可能有更优雅的方法,但很简单:

for a=1:length(strings)
    disp(['''', strings(a), '=', num2str(values(a)), ''''])
end

应该这样做,确保字符串是一个字符串数组,是包含值的那个,并且它们具有相同的长度。

答案 1 :(得分:0)

格式输入应为字符串:

sprintf('%s = %.4f', n7, n8)