if语句语法Matlab

时间:2015-02-09 15:21:39

标签: python matlab if-statement

我正在尝试将一些Matlab代码翻译成Python。不幸的是我没有Matlab所以我无法尝试语法。

我对下面的if语句感到困惑

for i = 1:200
    if mod(i,10) == 0 
        i 
    end

然后for循环继续计算一些依赖于i的值。 if语句有什么作用?

我是否也可以问稀疏矩阵和用零填充的矩阵之间的区别,例如

A = sparse(n,m)
B = zeros(n,m)

谢谢!

4 个答案:

答案 0 :(得分:1)

if语句检查i除以10的modulus(除法后的余数)是否为0。

如果计算结果为true,则会将数字i打印到命令窗口。

答案 1 :(得分:1)

创建单独的问题通常更好,但我会尝试解决这两个问题:

1) mod函数执行模运算,即除法后的余数。如果数字可以被10整除,则mod(i,10) == 0将为1,否则为0。因此,当数字i是10的倍数时,将执行if语句。

由于没有else部分,如果条件不正确,则没有任何反应。

只需编写i(不带分号),即可将i的当前值打印到命令窗口。因此,示例代码的输出将为1020,...,200

2) zeros命令会创建"正常"维度n x m的(当然)零的矩阵。 MATLAB还有一个特殊的sparse memory organization。由于稀疏矩阵主要由零组成,因此您不需要使用所有这些零来填充内存,但是您可以保存非零值以及它们的位置。这是使用sparse功能自动完成的。将稀疏矩阵转换为" normal"格式,您可以使用full函数。

答案 2 :(得分:1)

天真的Python翻译将是

for i in range(1, 201):
    if not i % 10:
        print(i)

但我们可以通过指定步长值

来节省一些工作
for i in range(10, 201, 10):
    print(i)

答案 3 :(得分:0)

请参阅documentation for mod。在mod(i,10)除以i之后,10会返回余数,其中i是被除数,10是除数。 if语句检查该余数是否等于0