Matlab怎么判断一个数是不是属于某个数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matlab怎么判断一个数是不是属于某个数组相关的知识,希望对你有一定的参考价值。
for i=1:10
a(i)=89+i;
b(i)=79+i;
c(i)=69+i;
d(i)=59+i;
end
c=[d,c];
Name='zhang','li','huang','chen','zhu';
Score=82,91,89,40,100;
Rank=cell(1,5);
S=struct('Name',Name,'Score',Score,'Rank',Rank);
for i=1:5
switch S(i).Score
case 100
S(i).Rank='满分';
case a
S(i).Rank='优秀';
case b
S(i).Rank='良好';
case c
S(i).Rank='及格';
otherwise
S(i).Rank='不及格';
end
end
disp(['学生姓名 ','得分 ','等级']);
for i=1:5
disp([S(i).Name,blanks(6),num2str(S(i).Score),blanks(6),S(i).Rank]);
end
问题处在case那个地方,不知道如何解决。顺便问一下,disp的时候姓名的长度不一样,导致显示的很不整齐,怎么解决。。。
ismember
判断数组元素是否为集数组成员
全页折叠
语法
Lia = ismember(A,B)
Lia = ismember(A,B,'rows')
[Lia,Locb] = ismember(___)
[Lia,Locb] = ismember(___,'legacy')
说明
示例
如果 A 中某位置的数据能在 B 中找到,Lia = ismember(A,B) 将返回一个在该位置包含逻辑值 1 (true) 的数组。数组中的其他位置将包含逻辑值 0 (false)。
如果 A 和 B 是表或时间表,ismember 将为每一行返回一个逻辑值。对于时间表,ismember 在确定相等性时会考虑行时间。输出 Lia 是一个列向量。
Lia = ismember(A,B,'rows') 将 A 和 B 中的每一行视为一个实体,当 A 中的行也存在于 B 中时,将返回包含逻辑值 1 (true) 的列向量。数组中的其他位置将包含逻辑值 0 (false)。
'rows' 选项不支持元胞数组,除非其中一个输入项为分类数组或日期时间数组。
示例
使用上述任何语法,[Lia,Locb] = ismember(___) 还会返回数组 Locb。
一般情况下,对于 A 中属于 B 的成员的每一个值,Locb 会包含该值在 B 中的最小索引。值为 0 表示 A 不是 B 的成员。
如果指定了 'rows' 选项,Locb 将在 B 中为 A 和 B 中共有的每个行包含最小索引。值为 0 表示 A 不是 B 中的行。
如果 A 和 B 是表或时间表,Locb 将在 B 中为 A 和 B 中共有的每个行包含最小索引。值为 0 表示 A 不是 B 中的行。
示例
[Lia,Locb] = ismember(___,'legacy') 保留了 ismember 函数在 R2012b 和早期版本中的行为,它可保证函数在结合前面所述语法中的任何输入参数使用时能够得到与之前版本一致的结果。
'legacy' 选项不支持分类数组、日期时间数组、持续时间数组、表或时间表。
for i=1:10
a(i)=89+i;
b(i)=79+i;
c(i)=69+i;
d(i)=59+i;
end
c=[d,c];
Name='zhang','li','huang','chen','zhu';
Score=82,91,89,40,100;
Rank=cell(1,5);
S=struct('Name',Name,'Score',Score,'Rank',Rank);
for i=1:5
if S(i).Score<60
S(i).Rank='不及格';
elseif S(i).Score<65
S(i).Rank='及格';
elseif S(i).Score<85
S(i).Rank='良好';
elseif S(i).Score<100
S(i).Rank='优秀';
else
S(i).Rank='满分';
end
end
disp(['学生姓名 ','得分 ','等级']);
for i=1:5
disp([S(i).Name,blanks(14-length(S(i).Name)),num2str(S(i).Score),blanks(9-length(S(i).Score)),S(i).Rank]);
end
这样应该差不多了,建议使用if语句;
建议使用格式控制函数sprintf控制输出;
以上解法望采纳!本回答被提问者采纳
怎样判断哪个集合属于哪个集合
我是说具体一道A=描述发的集合其中有不等式,B=同前,两者关系
例如集合A和B如果集合A中的所有的元素,都在集合B中,那么集合A包含于集合B
注意集合和集合的关系不是属于和不属于是包含和不包含!
元素和集合的关系才是属于和不属于
例如 1∈1,2
A=1,2B=1,2,3 C=1,4A包含于B 但是A不包含于C
因为2不在集合C里 参考技术A 比如集合A包含集合B的全部元素,则说集合B属于集合A,也说集合B是集合A的子集 参考技术B 具体例子具体分析。
单这样一说不如去看概念好了。 参考技术C 画图最好,很直观。元素越多,圈画得越大,比较即可 参考技术D 集合A与B,对于集合A中的所有元素,都可以在集合B中找到,那么集合A包含于集合B,,需要特别说明的是,如果集合A中的元素都包含于集合B,而集合B中的元素也都包含于集合A,则A=B。
同时,数学术语中术语和包含需要分清楚,元素与集合之间是属于与被属于的关系,集合之间是包含于被包含的关系 第5个回答 2010-07-13 看元素,假如集合A属于集合B,那么集合A中所有的元素一定都在集合B中,且集合B中一定有集合A中所有的元素,甚至比集合A中的元素还要多,这就是判断依据,一定对,就顶一下吧
以上是关于Matlab怎么判断一个数是不是属于某个数组的主要内容,如果未能解决你的问题,请参考以下文章
angularjs中怎样判断一个元素是不是在一个数组中存在?