Matlab编程代码

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) 我试图运行这段代码,但它没有输出任何东西。我希望有人能帮我找出问题所在。请注意,我们在学校没有学习过它,我只是在网上阅

我在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
是否可被
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)