Matlab 从其他字符串创建单个字符串

Matlab 从其他字符串创建单个字符串,matlab,Matlab,我有一个变量,它是列表框句柄的字符串列表 string = get(handles.ListBox,'string'); string= 'file1' 'file2' 我想创建一个字符串,如: line= 'file1 file2' 以便在输出文件的一行中写入它。在每种情况下,输入文件的数量可能会有所不同,因此我希望以一般的方式进行。我尝试过“horzcat”、“strcat”,但没有成功。我找到了一个很好的方法: S = {'file1'; 'file2'};

我有一个变量,它是列表框句柄的字符串列表

string = get(handles.ListBox,'string');
string=
       'file1'
       'file2'
我想创建一个字符串,如:

line= 'file1 file2'
以便在输出文件的一行中写入它。在每种情况下,输入文件的数量可能会有所不同,因此我希望以一般的方式进行。我尝试过“horzcat”、“strcat”,但没有成功。

我找到了一个很好的方法:

S = {'file1'; 'file2'};
strjoin(S(:)', ' ')
有一个专门用于此任务的功能:

C = {'one', 'two', 'three'};
str = strjoin(C)

最简单的方法,也是最干净的方法,就是用它们制作一个矩阵:

s1 = 'bla';
s2 = 'blabla';
scat = [ s1, s2 ];

呸!你在我编辑之前一秒钟!但我认为你需要重塑?如果我尝试你的,我会出错,因为isOne可以使用转置S'来实现。似乎OP已经有了单元格数组形式的字符串。为什么要使用scat变量?我的意思是,变量名称的选择是奇怪的S1=字符串1,s2=字符串2,scat=串联字符串,创造性地从C函数strcat派生而来。这是一个三行代码片段,变量名在优先级列表中并不高。我认为@Mikhail's strjoinS'是解决这个特定问题的正确方法。转置是为了什么?我现在不在MATLAB附近;strjoin是否要求单元格数组是行向量?@EitanT啊我尝试使用sprintf,但我没有想到{:}使其不是单元格矩阵@EitanT strjoin似乎只接受1xN细胞矩阵……所以S:“这才是你真正需要的:如果你不介意的话,我已经修改了你的答案。你为什么不接受答案呢?”?