Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function MATLAB函数元素范围_Function_Matlab_Range - Fatal编程技术网

Function MATLAB函数元素范围

Function MATLAB函数元素范围,function,matlab,range,Function,Matlab,Range,对不起,我的问题是noob,但我是MATLAB的初学者。我需要完成以下任务,但我被卡住了。“编写一个包含三个参数x,a,b的函数,其中x是矩阵,a和b是标量。该函数返回x中位于区间[a,b]内的元素数。”以下是我到目前为止得到的结果 function y = count(x,a,b); for value=a:b length(value) end 我需要在命令提示符下使用以下行调用该函数: count(randn(20, 20), 0, 5) 然而,我没有得到任何接近正确答案的东西

对不起,我的问题是noob,但我是MATLAB的初学者。我需要完成以下任务,但我被卡住了。“编写一个包含三个参数x,a,b的函数,其中x是矩阵,a和b是标量。该函数返回x中位于区间[a,b]内的元素数。”以下是我到目前为止得到的结果

function y = count(x,a,b);
for value=a:b
    length(value)
end
我需要在命令提示符下使用以下行调用该函数:

count(randn(20, 20), 0, 5)

然而,我没有得到任何接近正确答案的东西。谁能给我指出正确的方向吗?谢谢。

正如乔纳斯所建议的
nnz
sum
是比
numel(find(…)
更快的选项,
sum
是最快的选项,因此:

function y = count(x,a,b);
y = sum(x(:)>a & x(:)<b);
函数y=计数(x,a,b);

y=sum(x(:)>a&x(:)你有没有试过写一些类似于
xI的东西?我不知道你在说什么,它是否包含一个嵌套的if语句?@ShankarKumar:没有,只要试一下
x=randn(5,5)
然后
x>1
@DSM:你是说要修改命令行吗?我需要保持它的原样(它是提供给我们的)。我需要修改第一个框最后三行中的代码以适应该命令。:(您可以进一步简化,只需使用
sum
一次,使用
(:)
语法将矩阵转换为向量。
total_sum=sum(新数组(:)