如何找到数组中数字的位置呢?

4599(30天)
如果我有一个向量,a =[2 5 6 7 8 8],我怎么计算值8的位置?
我希望2和3(1、2)和(1、3)。

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2018年2月15日
编辑:MathWorks支金宝app持团队 2020年2月27日
您可以使用“ 找到 ”功能,返回数组元素对应的位置值。例如 :
一个= (2 5 6 7 8 8);
linearIndices =找到(= = 8)
linearIndices =
2 3
单独的行和列索引 ,使用 :
[行,坳]=找到(= = 8)
行=
1
坳=
2 3
如果你只需要一个发生的位置,您可以使用语法”找到(= = 8,1)”。您还可以指定一个方向如果你特别想要第一个或最后一次出现,如“找到(= = 8 1 '第一次')。关于这些选项的更多信息,请参阅 找到
2的评论
沃尔特·罗伯森
沃尔特·罗伯森 2022年7月20日
find()永远不能返回0。也许你看着ans为一个不同的操作吗?

登录置评。

更多的答案(4)

Bhagyesh Shiyani
Bhagyesh Shiyani 2019年12月5日
如果我想要两个8位置,任何代码?
2的评论
沃尔特·罗伯森
沃尔特·罗伯森 2020年1月15日
这不会返回值和索引,它将返回的行和列数字。

登录置评。



Sorne Duong
Sorne Duong 2021年7月21日
= 1、3、6、9、10、15
我们知道第四个值是9,但是如何找到第四价值在MATLAB ?
4评论

登录置评。


Nilesh Kumar Bibhuti
Nilesh Kumar Bibhuti 2021年10月15日
编辑:沃尔特·罗伯森 2021年10月15日
兄弟,这将给你所需的输出。编码快乐:)
#包括< stdio . h >
#定义MAX_SIZE100 / /最大数组大小
intmain ()
{
即arr int [MAX_SIZE], [MAX_SIZE];
int大小,我项目发现,k = 0;
/ *输入数组的大小* /
printf (输入数组的大小:“);
scanf (“% d”、大小);
/ *输入元素的数组* /
printf (输入数组元素:“);
(i = 0;我<大小;我+ +)
{
scanf (“% d”,arr[我]);
}
printf (“搜索:\整体元素”);
scanf (“% d”、项目);
(i = 0;我<大小;我+ +)
{
如果项目(arr[我]= =)
{
即[k] = i + 1;
printf (“% d”,即[k]);
k + +;
}
}
返回0;
}
1评论
沃尔特·罗伯森
沃尔特·罗伯森 2021年10月15日
在C语言中, int大小 真正应该 size_t大小 和你scanf()应该使用%陆而不是% d。 k 还应该size_t
你应该检查每一个的返回状态scanf()调用。
intmain ()
应该是
int主要(空白)
除非你使用k和r C C之前从标准化。
用户期望返回的位置,而不是显示。
你可能不应该假设整数数组,但是这将是一个可接受的限制如果专门记录。
你不使用或初始化 发现

登录置评。

类别

找到更多的在多项式帮助中心文件交换

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!