科迪14题。找质数的数字是一个矩阵。

8视图(30天)
我发现困难的 14日问题 科迪上这是我的解决方案:
函数= meanOfPrimes(中)
[a, b] =大小(在)
金额= 0;
我= 1:一个
j = 1: b
如果isprime ((i, j))
在(i, j) = str2num (i, j))
和=和+ (i, j);
结束
结束
结束
=金额/ 2;
结束
不幸的是它不工作,谁能帮助我!
提前谢谢。
1评论
杰夫•海斯
杰夫•海斯 2021年3月31日
Hidd_1——为什么你做以下
在(i, j) = str2num (i, j))
不是 数组已经数字吗?不会失败如果已经数字吗?你的意图是什么呢?
同时,尽量避免创建变量名字匹配的内置MATLAB函数。在这种情况下,这将是 总和

登录置评。

接受的答案

大卫•希尔
大卫•希尔 2021年3月31日
输入的不是一个字符串。
函数= meanOfPrimes(中)
[a, b] =大小(在)
金额= 0;
c = 0;
我= 1:一个
j = 1: b
如果isprime ((i, j))
% (i, j) = str2num ((i, j))
和=和+ (i, j);
c = c + 1;%需要跟踪多少
结束
结束
结束
=总和/ c;%的意思是质数之和/质数数目
结束
另外,线性索引矩阵
函数= meanOfPrimes(中)
金额= 0;
c = 0;
i = 1:元素个数(中)
如果isprime ((i))
和=和+ (i);
c = c + 1;
结束
结束
=总和/ c;
或者更好的是,没有循环
=意味着((isprime (a)));

更多的答案(3)

骑自行车的人
骑自行车的人 2021年3月31日
当你正确的问题 @Geoff海耶斯 在他的评论中指出的那样,你仍然有一个数学问题。
=金额/ 2
不是正确的方法来计算'值之和的平均值。
这是足够的提示吗?
同时,我就指出,您不需要使用for循环。你可以应用isprime整个输入数组,利用MATLAB的矢量化性质。
1评论
Hidd_1
Hidd_1 2021年3月31日
编辑:Hidd_1 2021年3月31日
谢谢我解决了这个问题!这是我的解决方案:
函数= meanOfPrimes(中)
[a, b] =大小(在);
s = 0;
k = 0;
我= 1:一个
j = 1: b
如果isprime ((i, j))
s = s + (i, j);
k = k + 1;
结束
结束
结束
= s / k
结束
[s]我想知道我可以只使用isprime解决它吗?[/ s]
@David山 谢谢!

登录置评。


疝的婴儿
疝的婴儿 2021年3月31日
杰夫·海耶斯说,变量”“不是字符串类型。
你可以检查数据类型类函数。
在= [8 3 5 9];
类(在)
ans =
“双”
ーーーーーーーーーーーーー。ー
因此,它将忽略str2num时工作得很好。
清楚,clc;
在= [8 3 5 9];
[a, b] =大小(在);
金额= 0;
我= 1:一个
j = 1: b
如果isprime ((i, j))
在(i, j) = (i, j);
和=和+ (i, j);
结束
结束
结束
=金额/ 2
了=
4

阿
2023年4月26日在犯规
函数= meanOfPrimes(中)
primeTF = isprime(的);
primeTFIndex =找到(primeTF);
x = [];
i = 1:长度(primeTFIndex)
[x, x = (primeTFIndex(我)));
结束
=意味着(x);
结束

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!