for i=1:N
f(i) = 'f'+i;
end
在MatLab中给出错误。用模式fi的N个字符串初始化数组的正确语法是什么?
似乎这还行不通:
for i=1:4
f(i) = 'f';
end
Answers:
['f', num2str(i)]
有点短。
一种简单的非循环方法是使用genvarname
创建字符串的单元格数组:
>> N = 5;
>> f = genvarname(repmat({'f'}, 1, N), 'f')
f =
'f1' 'f2' 'f3' 'f4' 'f5'
该函数genvarname
已被弃用,因此matlab.lang.makeUniqueStrings
可以通过以下方式使用它来获得相同的输出:
>> N = 5;
>> f = strrep(matlab.lang.makeUniqueStrings(repmat({'f'}, 1, N), 'f'), '_', '')
f =
1×5 cell array
'f1' 'f2' 'f3' 'f4' 'f5'
genvarname
。
genvarname
已弃用。
f
看起来像什么?将所有单个fi
字符串串联在一起的单个字符串?每行一个字符串的字符数组?一个细胞阵列?