我有一个库函数,它接受文本字符串作为参数(它是一个带有MATLAB前端的通用C库)。我想这样调用它:
'-a 0 -b 1'
'-a 0 -b 2'
'-a 0 -b 3'
'-a 1 -b 1'
'-a 1 -b 2'
'-a 1 -b 3'
我正在使用 meshgrid
创建变量 a
和 b
的值:
[a,b] = meshgrid(0:5, 1:3);
这将产生:
a =
0 1 2 3 4 5
0 1 2 3 4 5
0 1 2 3 4 5
b =
1 1 1 1 1 1
2 2 2 2 2 2
3 3 3 3 3 3
现在我想把这些字符串放到一个单元格中:
params = {'-a 0 -b 1'; '-a 0 -b 2'; 等等...}
我尝试使用 sprintf
,但那只是把它们连接起来。
sprintf('-a %f -b %f', a ,b)
ans =
-a 0.000000 -b 0.000000-a 0.000000 -b 1.000000-a 1.000000 -b 1.000000-a 2.000000 -b 2.000000-a 2.000000 -b 3.000000-a 3.000000 -b 3.000000-a 4.000000 -b 4.000000-a 4.000000 -b 5.000000-a 5.000000 -b 5.000000-a 1.000000 -b 2.000000-a 3.000000 -b 1.000000-a 2.000000 -b 3.000000-a 1.000000 -b 2.000000-a 3.000000 -b 1.000000-a 2.000000 -b 3.000000-a 1.000000 -b 2.000000-a 3.000000 -b 1.000000-a 2.000000 -b 3.000000
除了循环遍历
a
和 b
,我该如何创建所需的单元格?
[a(:) b(:)]
中提取值,因此您可能需要先转置该矩阵。您也可以使用CELLSTR而不是STRCAT。 - gnovicenum2str([1 2; 3 4; 5 6],'%d\n')
或者num2str([1 2; 3 4; 5 6],'%d %d')
来匹配上面的内容。 - Amrosprintf('%d\n',[1 2; 3 4; 5 6])
进行比较) - Amro