for循环的问题

5次浏览(过去30天)
Meowooo
Meowooo 2017年10月13日
编辑: 沃尔特·罗伯森 2017年10月14日
使用switch创建一个具有以下头的函数:
函数[vowels] = findVowels (charCell)
其中:charCell是一个二维单元格数组,每个单元格包含一个字符数组,vowels是一个与charCell具有相同尺寸的单元格数组,仅包含每个条目的元音(小写)。
你的函数应该能够重现下面的测试用例:
>> a = {正为温榆迈克尔Frenklach
一个=
2 x2细胞数组
正为温榆' '
迈克尔' 'Frenklach
>> findVowels (a)
ans =
2 x2细胞数组
欧盟' '
管理学院' 'ea的
我的回答:
函数[vowels] = findVowels(charCell)
字符串st = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
a = st[Random.Range(st. length)];
charCell = {a1, a2;a3、a4};
开关vowles(信)
情况下一个“e”我“o”u '
A = {“letter1”“letter2”“letter3”“letter4”};
否则
dispA = []
结束
我搞砸了哪一步?非常感谢

答案(1)

沃尔特·罗伯森
沃尔特·罗伯森 2017年10月14日
编辑:沃尔特·罗伯森 2017年10月14日
你有
字符串st = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
在MATLAB中,这相当于调用
字符串(“圣”“=”“abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ”);
这会得到误差,
没有找到具有匹配签名的构造函数“字符串”。
在赋值时,MATLAB不会将变量类型放在变量名之前。省略变量类型:只使用
圣=“abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ”
你有
st.Length
但是,MATLAB字符串对象没有Length方法。MATLAB字符串对象是字符串的数组,所以如果你想要数组中一个元素的长度,你需要提取出这个元素并询问它的长度:
长度(st {1})
在字符串数组的情况下,如果您想找到每个元素的长度,您可以使用
cellfun (@length、圣)
但如果你这样做了,注意你可能想为字符串数组中的每个字符串设置不同的随机位置。
你有
Random.Range (st.Length)
MATLAB没有任何名为“Random”的包,它有一个名为“Range”的静态方法。你看起来像是在使用Java,但Java也没有。 https://www.mkyong.com/java/java-generate-random-integers-in-a-range/ .考虑使用randi()
你有
a = st[Random.Range(st. length)];
在MATLAB中,[]仅用于构建列表和数组,而不用于索引。而且,因为字符串对象是数组,如果你只是索引,你就是在索引 哪一个 字符串,而不是索引到字符串。
你有两个选择:
1)
pos =...你从上面随机确定的位置
a = extractBetween(st, pos, pos);
这将从 每一个 字符串数组中的字符串,返回一个字符串数组。或者,
2)
圣{1}(pos)
对象中提取给定的位置 第一个 字符串数组中的字符串。
你有
charCell = {a1, a2;a3、a4};
但是,您还没有定义a1、a2、a3或a4。
你有
开关vowles(信)
但是,您还没有定义“元音”或“字母”。"vowles"和"vowels"有关系吗?

类别

了解更多循环和条件语句帮助中心而且文件交换

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!