matlab中编写函数返回下标值3
发布网友
发布时间:2023-09-20 10:32
我来回答
共1个回答
热心网友
时间:2024-11-25 00:32
函数如下:
function ind = findNearest(x, desiredVal)
[m,n] = size(x); %%%% 先确定x的大小
erro = abs(x(:)-desiredVal); %%%% 计算误差值,矩阵需要拉成一维向量
min_e = min(erro); %%%% 找到最小误差
temp = reshape(erro,m,n); %%%%% 将一维向量恢复成矩阵
[a,b] = find(temp==min_e); %%%%% 找到最小误差对应的下标
ind = [a b]; %%%% 返回 a 为下标的行,b 为下标中的列
结果测试:
>> A = rand(3) %%%% 产生0到1均匀分布随机数
A =
0.3922 0.7060 0.0462
0.6555 0.0318 0.0971
0.1712 0.2769 0.8235
>> desired = 0.5 %%%% 测试数据0.5
desired =
0.5000
>> findNearest(A,desired) %%%% 调用函数找最接近数下标
ans =
1 1 %%%%% 结果为1 1 ,即第一行第一列,0.3922确实是最接近0.5。验证通过
copyright(c) cxd1301