我想在循环中创建一个包含字符串的向量。
创建代码后,我的输出应该是一个行矩阵,在一个循环中有30个元素,从' Mon'结束于' Tue'
我的向量应该在连续循环中包含这七个元素 '星期一' ,'星期二' '星期三' ,'周四' ,'周五' ,'周六' ,' Sun'
请给我一些想法
我的英语不好,因为它是我的第二语言所以请尽量承担语法错误。
答案 0 :(得分:4)
您不能在向量中包含这些字符串,因为向量中的每个元素都是单个整数类型,因此double
,integer
,character
等等。你想要的是每个条目的一组字符,如果你想要它最好使用一个单元格数组。
您可以先创建一个包含Mon
到Sun
的字符串的单元格数组,然后使用模运算符对其进行索引:
>> A = {'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'};
>> B = A(mod(0:29, numel(A)) + 1)
B =
Columns 1 through 9
'Mon' 'Tue' 'Wed' 'Thu' 'Fri' 'Sat' 'Sun' 'Mon' 'Tue'
Columns 10 through 18
'Wed' 'Thu' 'Fri' 'Sat' 'Sun' 'Mon' 'Tue' 'Wed' 'Thu'
Columns 19 through 27
'Fri' 'Sat' 'Sun' 'Mon' 'Tue' 'Wed' 'Thu' 'Fri' 'Sat'
Columns 28 through 30
'Sun' 'Mon' 'Tue'
我不会在这里使用循环,但如果你坚持使用循环,你可以从1到30迭代并使用相同的原则:
A = {'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'};
B = cell(1,30); %// Initialize empty cell array
for idx = 1 : 30 %// Going from 1 up to 30...
index = mod(idx-1, numel(A)) + 1; %// Determine the right place to index into A
B(idx) = A(index); %// Get corresponding day and place into output
end
您将得到与上述相同的答案。