2是素数,所以示例解决方案应该是(2 + 3 + 5)/ 3 = 3.33 ....
+1,这个例子是错误的:(
*脸红*哎呀!至少我们得到了实际的测试套件。谢谢你的笔记。固定它。
我不明白这个问题
好的......
我不明白为什么这不适用于测试3:OUT = SUM(IN. * ISPRIME(IN))/ SUM(ISPRIME(IN))
它适用于所有其他测试,但测试3需要3个答案,代码给出3.0000的答案。有人能告诉我为什么?
有趣的 :)
好的
好的
问题主题很难理解。
初学者的良好问题。
出什么问题了
a = find(isprime(in))
出= =意思(在(a)中)?
它在我自己的Matlab环境中完美地工作
tf = isprime(in);
count = nnz(tf);
tot = sum(sum(tf. * in));
出= tot / count;
为什么这个代码不起作用
[1 2 3]的素数如何是2.5?
为1和3的素数为2。
1不是素数,因此2 + 3 = 5,5/2 = 2.5
为什么这发生了,
3.
失败
x = [3 3;3 3];
y_correct = 3;
断言(Isequal(MASEOFPRIMES(x),y_correct))
出= 3.0000.
断言失败了。
为什么?
好简单
奇怪的柔性,但好的
GJ.
欺诈
我也有测试3的问题,但是如果我通过所有测试,那么
函数=意思是均值= sum(in. * isprime(in))/ sum(isprime(in));出=圆形(平均值,1);结尾
在= [3 3;3 3]
在=
3 3.
3 3.
>> sum(in. * isprime(in))/ sum(isprime(in))
ans =.
3.0000
故障是两个方面:
(1)测试3的分子和分母将是向量,而不是标量,因为这是Sum()的工作;
(2)因此采用MATLAB算法用于矩阵划分,并引入了截断误差。您的代码产生了一个声明的3 - (4.4409E-16)的测试3.当然,如果仅显示几个小数点,则显示为“3.0000”。
要避免此问题,请将输入矩阵重写为向量。这可以用重写命令完成,但更容易的方式是简单地索引“(:)”。
这是在https://au.mathwork.com/matlabcentral/cody/problys/14-find-the-numeric-mean-of-the-prime-numbers-a-a-matrix/solutions/114267万博 尤文图斯2
另一个有效的(但有点不太优雅)避免问题的方法是嵌套您的求和:和(总和(sum(...)))。(但您必须至少使用与矩阵具有尺寸的许多“sum”命令使用。)
有关调试,请尝试使用whoS命令。
@david verrelli.
谢谢!有用。
这里的问题在哪里?它适用于Matlab。
问题是您无法更改函数名称,请尝试使用意思普及,它将工作!
我写的代码在我的matlab上工作。为什么它表明我的解决方案不正确?
Mean2是来自图像处理工具箱的功能。CODY仅支持MAT万博1manbetxLAB,而不是工具箱。
令人惊讶的是,您的解决方案尺寸仅为10.我的客人只包含一行代码。
你介意分享吗?
谢谢你。
为什么第3个测试失败了?它在Matlab中工作。
*慢拍*
你先生,是一个c程序员......
我尝试使用此方法,这是成功..但是...... :(
这应该是工作,但它失败了第三种测试,因为它产生了4.409e-16由于舍入错误而产生的值。
来吧,科迪挑战作家!至少提供一个正确的例子 - 2是素数(除非法律禁止)