【发布时间】:2016-05-20 07:01:42
【问题描述】:
我有一个情况:我有一个向量A,比如说10000x1,还有另一个向量B 10000x1,都是带有浮点数的数值数组在里面。现在我想将数据写入一行字符串,如下所示:
A(1):B(1) A(2):B(2) ....A(10000):B(10000)
有没有一种有效的方法来做到这一点?现在,我只是使用for循环,先将浮点数更改为字符串,然后添加':',然后将它们连接在一起。这是非常缓慢的。有人可以帮忙吗?非常感谢。
【问题讨论】:
-
请提供一些实际数字作为示例。目前是模棱两可的。如果
A = [3,5,1,...和B = [8,9,5,...那么你希望你的字符串是'3:8 5:9 1:5 ....'还是'3 4 5 6 7 8 5 6 7 8 9 1 2 3 4 5 ....'?如果是前者我推荐sprintf('%d:%d ', [A,B]') -
我回答之前的一个附带问题:你为什么不想这样做?这将是一个很长的字符串
-
@Dan 3:8 5:9 1:5 ....是正确的理解。但是如果A是整数向量,B是双向量,怎么办?我尝试了 sprintf('%d:%f ', [A,B]'),但它不起作用。输出只包含 A,没有 B。
-
@yzhu 我没有意识到你在为
A和B使用列向量。试试这个:sprintf('%d:%f ', [A,B]) -
@yzhu - 那是因为您刚刚切换回行向量!您问题中的
A是10000-by-1,但现在您使用的是1-by-10。其中一个需要转置...如果您想安全起见,请使用(:)技巧,例如thewaywewalk 建议将向量强制为列向量,以便sprintf('%d:%f ', [A(:),B(:)]')