Function MATLAB函数元素范围
对不起,我的问题是noob,但我是MATLAB的初学者。我需要完成以下任务,但我被卡住了。“编写一个包含三个参数x,a,b的函数,其中x是矩阵,a和b是标量。该函数返回x中位于区间[a,b]内的元素数。”以下是我到目前为止得到的结果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) 然而,我没有得到任何接近正确答案的东西
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(新数组(:)