matlab程序设计问题

  1. 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。例如nums = [1,3,5,6], target = 5,应当返回3;nums = [1,3,5,6], target = 2,应当返回2。

nums=input('');
b=input('');
a=find(nums==b)
这段代码如何修补才能有目标不存在时的返回值(能够用find函数判断是否存在目标值吗?)

这么做就行啦

nums = [1,3,5,6];
target = 2;
p = find(nums==target);
if(isempty(p))
p = sum(nums<target) + 1;
end
p

结果:

p =

     2

bool_a = isempty(a)判断a是否为空,如果bool_a的值为真时,即目标不存在

或者用 L = length(a),如果 L 的值为0, 那就是空,即目标不存在