如何在数组中找到一个数字的位置?

6.124次观看(过去30天)
如果我有一个向量,a =[7 8 8 2 5 6],我如何计算值8的位置?
我期望2和3或者(1,2)和(1,3)

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2018年2月15日
编辑:MathWorks支金宝app援小组 2020年2月27日
您可以使用“ 找到 函数返回数组元素值对应的位置。例如
A = [7 8 8 2 5 6];
线性指数= find(a==8)
linearIndices =
2 3
来分别获取行索引和列索引 ,使用
[row,col] = find(a==8)
行=
1
坳=
2 3
如果只需要一个事件的位置,可以使用语法" find(a==8,1) "。如果你特别想要第一个或最后一个出现,你也可以指定一个方向,比如“find(a==8,1, ' first ')”。有关这些选项的详细信息,请参见 找到
2的评论
沃尔特·罗伯森
沃尔特·罗伯森 2022年7月20日
Find()永远不能返回0。也许您正在寻找不同操作的an ?

登录评论。

更多答案(4)

Bhagyesh Shiyani
Bhagyesh Shiyani 2019年12月5日
如果我想要这8个位置呢?
2的评论
沃尔特·罗伯森
沃尔特·罗伯森 2020年1月15日
它不会返回值和索引,而是返回行号和列号。

登录评论。


Ujjawal Barnwal
Ujjawal Barnwal 2020年6月7日
A = [7 8 8 2 5 6];
Position = find(a==8)

Sorne Duong
Sorne Duong 2021年7月21日
A = 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 ()
int arr[MAX_SIZE],brr[MAX_SIZE];
int size, i, toSearch, found,k=0;
/*数组的输入大小*/
printf (输入数组大小:);
scanf (“% d”、大小);
/*输入数组*/的元素
printf (在数组中输入元素:);
(i = 0;I < size;我+ +)
scanf (“% d”, arr[我]);
printf (“\nEnter元素搜索:”);
scanf (“% d”、项目);
(i = 0;I < size;我+ +)
如果(arr[i] == toSearch)
Brr [k] = i+1;
printf (“% d”,即[k]);
k + +;
返回0;
1评论
沃尔特·罗伯森
沃尔特·罗伯森 2021年10月15日
在C语言中, int大小 真的应该 size_t大小 你的scanf()应该使用%lu而不是%d。 而且 k 也应该是size_t
您应该检查每个scanf()调用的返回状态。
intmain ()
应该是
int主要(空白)
除非你使用的是C被标准化之前的K&R C。
用户希望返回位置,而不是显示位置。
您可能不应该假设数组为整数,但如果有专门的文档,这将是一个可接受的限制。
您不使用或初始化 发现

登录评论。

类别

了解更多多项式帮助中心而且文件交换

标签

社区寻宝

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

开始狩猎!

翻译的