Matlab矢量名称不是数字

问题描述:

何我可以做一个这样的矢量M = ['彼得','玛丽亚','米歇尔'等],并从该矢量中选择一个随机名?我基本上想要抽奖。Matlab矢量名称不是数字

可以使用(1)cell array特征向量

M = {'Peter', 'Maria', 'Michelle'}; 

或者,使用最近推出的string数据类型,你可以创建(2)数组:

M = ["Peter", "Maria", "Michelle"]; 

然后,使用randi选择从1一个随机数到numel(M)

n = randi(numel(M)); 

,并用它作为一个指数到M

  • 随着选项(1),{} -indexing会给的字符阵列。
  • 使用选项(2),{} -indexing将再次给出一个字符数组。或者你可以使用() -indexing来获得一个字符串。有关使用字符串索引的更多信息可以参见here

所以:

winner = M{n}; % or winner = M(n); 

使用电池阵列和兰迪功能;在正常矩阵中,所有的字符串必须是相同的长度,单元阵列中可以有任意的内容

M = {'Peter', 'Maria', 'Michelle'}; 
name = M{randi([1, numel(M)])};