MATLAB:将一维字符串的元胞数组转换为二维字符串
MATLAB: Convert cell array of 1D strings to 2D string
最新版本的 MATLAB strings, which are N-Dimensional matrices of character vectors. I have a cell array of such 1D strings that I would like to combine into a single 2D string, but I am having a lot of trouble doing so. The join
, strjoin
and strcat
functions work on the characters arrays inside the string, and cell2mat
不工作:
>> cell2mat({strings(1, 4); strings(1, 4)})
Error using cell2mat (line 52)
CELL2MAT does not support cell arrays containing cell arrays or objects.
请问有什么好的方法吗?我希望上述情况下的输出是一个 2x1 string
对象。
string
对象与任何其他数据类型(double
、char
等)在连接相同类型时表现得一样。只要你希望结果也是一个 string
对象,使用正常的连接。
result = [strings(1, 4); strings(1, 4)];
或者您可以使用 cat
或 vertcat
更明确
result = cat(1, strings(1, 4), strings(1, 4));
result = vertcat(strings(1, 4), strings(1, 4));
或者,您可以使用索引对同一元素采样两次
result = strings([1 1], 4);
如果您的数据已经在元胞数组中,那么您可以使用 {:}
索引生成一个逗号分隔的列表,您可以将其传递给 cat
C = {string('one'), string('two')};
result = cat(1, C{:})
附带说明一下,MATLAB 中没有一维数组这样的东西。所有数组至少是二维的(其中一个可以是1)。
最新版本的 MATLAB strings, which are N-Dimensional matrices of character vectors. I have a cell array of such 1D strings that I would like to combine into a single 2D string, but I am having a lot of trouble doing so. The join
, strjoin
and strcat
functions work on the characters arrays inside the string, and cell2mat
不工作:
>> cell2mat({strings(1, 4); strings(1, 4)})
Error using cell2mat (line 52)
CELL2MAT does not support cell arrays containing cell arrays or objects.
请问有什么好的方法吗?我希望上述情况下的输出是一个 2x1 string
对象。
string
对象与任何其他数据类型(double
、char
等)在连接相同类型时表现得一样。只要你希望结果也是一个 string
对象,使用正常的连接。
result = [strings(1, 4); strings(1, 4)];
或者您可以使用 cat
或 vertcat
更明确
result = cat(1, strings(1, 4), strings(1, 4));
result = vertcat(strings(1, 4), strings(1, 4));
或者,您可以使用索引对同一元素采样两次
result = strings([1 1], 4);
如果您的数据已经在元胞数组中,那么您可以使用 {:}
索引生成一个逗号分隔的列表,您可以将其传递给 cat
C = {string('one'), string('two')};
result = cat(1, C{:})
附带说明一下,MATLAB 中没有一维数组这样的东西。所有数组至少是二维的(其中一个可以是1)。