Matlab编程代码
我在Matlab上写了一个程序,检查从1到整数N(由用户设置)有多少数字可以被2整除 这是我的密码:Matlab编程代码,matlab,Matlab,我在Matlab上写了一个程序,检查从1到整数N(由用户设置)有多少数字可以被2整除 这是我的密码: num=input('Please enter a number'); count=0; while (num>=0); if mod(num,2)==0; count=count+1; end num=num-1; end disp(count) 我试图运行这段代码,但它没有输出任何东西。我希望有人能帮我找出问题所在。请注意,我们在学校没有学习过它,我只是在网上阅
num=input('Please enter a number');
count=0;
while (num>=0);
if mod(num,2)==0;
count=count+1;
end
num=num-1;
end
disp(count)
我试图运行这段代码,但它没有输出任何东西。我希望有人能帮我找出问题所在。请注意,我们在学校没有学习过它,我只是在网上阅读,并试图自己写一些东西。我在您的代码中看到许多逻辑错误。首先,您要检查
num
是否可被10
整除,而不是2
。此外,如果要检查下一个数字,则无论是否通过if条件,都应减小num
。最后,您说您想检查范围从1到N的数字,但由于=
条件,您的while循环实际上检查数字0到N
从句法的角度来看:if和while(以及for)后面不应该有一个尾随分号
所以像这样的事情可能更接近你的要求,尽管我仍然不知道我是否完全理解你的问题
%请求用户输入
num=输入(“请输入一个数字”);
计数=0;
while(num>0)
%检查整除性
如果mod(num,2)=0
计数=计数+1;
结束
%递减数
num=num-1;
结束
%显示计数--写入变量名时不带结尾分号“;”使Matlab输出变量内容
计数
无需在循环中使用,按照设计的方式使用Matlab
num = input('Please enter a number ');
count = sum(mod(1 : num, 2) == 0);
disp(count);
我想你得改变一下num=20
给出了count=11
,应该是10
@kamtal,而(num>=0)允许零;-)@Kamtal:mod(2,0)
给出了0
。这完全取决于OP在寻找什么因为他提到“从1
到N
”。不管怎样,谢谢。@Kamtal这是一个我完全忽视的好观点。我会马上纠正的。谢谢,很好。但我认为他是一个初学者,他正在学习一些简单的代码。我不知道我实际上可以用3个步骤完成所有这些。我对Matlab是新手。看起来很有效率,非常感谢@NoorAIH您尝试编写的方法对于大多数编程语言来说都是通用的,它没有任何Matlab的细节。我建议您不要使用如果mod(num,2)==0
您可以尝试一些简单的方法,比如如果num/2==floor(num/2)
。