我希望将单元格数组{'a', 'b'}
中的字符串连接(用空格填充)以提供单个字符串'a b'
。我怎么能在MATLAB中做到这一点?
答案 0 :(得分:17)
你可以通过将单元格数组用作sprintf函数的一组参数,然后使用strtrim清理多余的空格来作弊:
strs = {'a', 'b', 'c'};
strs_spaces = sprintf('%s ' ,strs{:});
trimmed = strtrim(strs_spaces);
很脏,但我喜欢它......
答案 1 :(得分:10)
matlab具有执行此操作的功能,
REF:
http://www.mathworks.com/help/matlab/ref/strjoin.html
<强> strjoin 强>
将单元格数组中的字符串连接成单个字符串
语法
str = strjoin(C) example
str = strjoin(C,delimiter)
例如:
加入有空白的单词列表
使用单个空格将字符串C的单元格数组中的单个字符串连接起来。
C = {'one','two','three'};
str = strjoin(C)
str =
one two three
答案 2 :(得分:7)
亚历克斯答案的小改进(?)
strs = {'a','b','c'};
strs_spaces = [strs{1} sprintf(' %s', strs{2:end})];
答案 3 :(得分:4)
您可以使用函数STRCAT将空白附加到除了单元格数组的最后一个单元格之外的所有单元格,然后将所有字符串连接在一起:
>> strCell = {'a' 'b' 'c' 'd' 'e'};
>> nCells = numel(strCell);
>> strCell(1:nCells-1) = strcat(strCell(1:nCells-1),{' '});
>> fullString = [strCell{:}]
fullString =
a b c d e
答案 4 :(得分:0)
R2013a中引入了join
和strjoin
。但是,the mathworks site about strjoin
读取:
从R2016b开始,建议
join
函数连接字符串数组的元素。
>> C = {'one','two','three'};
>> join(C) %same result as: >> join(C, ' ')
ans =
string
"one two three"
>> join(C, ', and-ah ')
ans =
string
"one, and-ah two, and-ah three"
我个人也喜欢Alex的解决方案,因为世界各地的研究小组都有大量的Matlab版本。