在MATLAB中,是否可能在for循环中创建一个字符串数组?
例如:
for i=1:10
Names(i)='Sample Text';
end
我似乎不能以这种方式完成它。
在MATLAB中,是否可能在for循环中创建一个字符串数组?
例如:
for i=1:10
Names(i)='Sample Text';
end
我似乎不能以这种方式完成它。
names = cell(10,1);
for i=1:10
names{i} = ['Sample Text ' num2str(i)];
end
>> for i=1:10 Names(i,:)='示例文本'; end >> Names但是,最好使用REPMAT来实现:
Names =
示例文本 示例文本 示例文本 示例文本 示例文本 示例文本 示例文本 示例文本 示例文本 示例文本
>> Names = repmat('示例文本', 10, 1)
Names =
示例文本 示例文本 示例文本 示例文本 示例文本 示例文本 示例文本 示例文本 示例文本 示例文本
另一个选择:
names = repmat({'Sample Text'}, 10, 1)
此外,从R2017a开始,您可以使用双引号字符串数组存储文本片段,并提供一组用于处理文本数据的函数。您可以像处理任何其他类型的数组一样索引、重塑和连接字符串数组。
""
创建字符串。for i = 1:3
Names(i) = "Sample Text";
end
请查看输出结果:
>> Names
Names =
1×3 string array
"Sample Text" "Sample Text" "Sample Text"
解决这个老问题的另一个方法是在Matlab 2016b中引入的新容器string array
。根据我在官方Matlab文档中所读到的,这个容器类似于单元数组,大多数与数组相关的函数都应该可以直接使用。对于您的情况,新的解决方案如下:
a=repmat('Some text', 10, 1);
for
循环的方式来完成。你的方法必须是手动的,没有办法处理1000多个条目。 - Sifu