创建一个字符串数组

Bri*_*ian 37 matlab

是否可以在for循环中在MATLAB中创建一个字符串数组?

例如,

for i=1:10
Names(i)='Sample Text';
end
Run Code Online (Sandbox Code Playgroud)

我似乎无法这样做.

Amr*_*mro 47

您需要使用单元格数组:

names = cell(10,1);
for i=1:10
    names{i} = ['Sample Text ' num2str(i)];
end
Run Code Online (Sandbox Code Playgroud)

  • 也可以使用字符数组执行此操作.见[我的回答](http://stackoverflow.com/questions/7100841/create-an-array-of-strings/7100894#7100894). (2认同)
  • 同意,OP的问题就是这种情况. (2认同)

b3.*_*b3. 9

您可以创建一个通过循环执行此操作的字符数组:

>> for i=1:10
Names(i,:)='Sample Text';
end
>> Names

Names =

Sample Text
Sample Text
Sample Text
Sample Text
Sample Text
Sample Text
Sample Text
Sample Text
Sample Text
Sample Text

但是,使用REPMAT可以更好地实现:

>> Names = repmat('Sample Text', 10, 1)

Names =

Sample Text
Sample Text
Sample Text
Sample Text
Sample Text
Sample Text
Sample Text
Sample Text
Sample Text
Sample Text


Ric*_*h C 8

另外一个选项:

names = repmat({'Sample Text'}, 10, 1)
Run Code Online (Sandbox Code Playgroud)

  • ...它创建与Amro相同的单元格数组,但使用b3用于字符数组的技术;-). (2认同)