我想将一些Matlab代码翻译成Python。不幸的是我没有Matlab,所以我不能尝试语法。if语句语法Matlab
我感到困惑下面
for i = 1:200
if mod(i,10) == 0
i
end
的if语句for循环进行计算一些依赖于I值。 if语句做什么?
可我还问什么用零做了一个稀疏矩阵和之间的差异,例如
A = sparse(n,m)
B = zeros(n,m)
谢谢!
我想将一些Matlab代码翻译成Python。不幸的是我没有Matlab,所以我不能尝试语法。if语句语法Matlab
我感到困惑下面
for i = 1:200
if mod(i,10) == 0
i
end
的if语句for循环进行计算一些依赖于I值。 if语句做什么?
可我还问什么用零做了一个稀疏矩阵和之间的差异,例如
A = sparse(n,m)
B = zeros(n,m)
谢谢!
它通常是最好创建单独的问题,但我会尽量同时满足:
1)的mod
功能performes模操作,即分裂后的余数。 mod(i,10) == 0
将是1,如果一个数字可以被10整除,否则为0。因此if语句将在数字i为10的倍数时执行。
由于没有else
部分,如果条件不成立,则不会发生任何事情。
通过只写i
(不带分号),当前值i
被打印到命令窗口。您的示例代码的输出因此将为10
,20
,...,200
。
2)zeros
命令创建了一个尺寸为n x m
(当然)为零的“正常”矩阵。 MATLAB还有一个特殊的sparse memory organization。由于稀疏矩阵大部分由零组成,因此不需要用所有零填充内存,但可以将非零值保存到它们的位置。这是使用sparse
函数自动完成的。要将稀疏矩阵转换为“正常”格式,可以使用full
函数。
if
语句检查i除以10的modulus(除法后的余数)是否为0。
当它被评估为真时,它会将数字i
打印到命令窗口中。
谢谢,这是否意味着for循环的其余部分只在我可以被10整除时运行?我不明白的实际部分是我在if语句中做了什么,以及当if语句不正确时会发生什么 – 2015-02-09 15:29:52
如果if语句不成立,则不会发生任何情况。如果if语句为true,则在执行'for'循环中的下一个数字之前,执行'if'语句下面的行。 – HavelTheGreat 2015-02-09 15:31:09
但是在这种情况下,所有if语句执行的都是'i',它已经从for循环计数器中定义。我不明白if语句有什么不同,无论是真是假。这是我想要了解的其他代码。 – 2015-02-09 15:33:36
请参阅documentation for mod
。 mod(i,10)
返回i
除以10
后的余数,其中i
为分红,10
为除数。 if
语句检查该余数是否等于0
。
天真的Python翻译将是
for i in range(1, 201):
if not i % 10:
print(i)
,但我们可以通过指定一个步长值保存一些工作,
for i in range(10, 201, 10):
print(i)
对于未来的参考,如果你不能得到一个MATLAB许可证,或对于一个快速入侵,你可能想尝试八度,一个免费的克隆。 – 2015-02-09 17:09:06