3

C++、Java、Python などの言語からコードを Matlab に移植し、整数と同じように動作させる必要がある場合。

int32(n) は除算では機能しません (投稿のタイトルを参照)。するタイプはありますか?

編集:私の好きな言語は、思ったほど一貫していないことがわかりました。C++:

#include <cstdio>
int main() {
    #define TEST(a, b)  printf("%d / %d = %d\n", (a), (b), (a)/(b));
    TEST(-4, 3);
    TEST(4, -3);
    TEST(-5, 3);
    TEST(5, -3);
    TEST(-1, 2);
    TEST(1, -2);
    return 0;
}

プロデュース:

-4 / 3 = -1
4 / -3 = -1
-5 / 3 = -1
5 / -3 = -1
-1 / 2 = 0
1 / -2 = 0

パイソン:

def TEST(a, b): return (a)/(b)

>>> TEST(-4, 3);
-2
>>> TEST(4, -3);
-2
>>> TEST(-5, 3);
-2
>>> TEST(5, -3);
-2
>>> TEST(-1, 2);
-1
>>> TEST(1, -2);
-1
4

1 に答える 1

11

「通常の整数除算」とは、他の言語と同じように「フロア除算」を意味していると思いますか?

その場合はidivide、明示的な丸めオプションを使用します。

> idivide(int32(2), int32(3), 'floor')
ans = 0
于 2012-09-12T01:48:32.637 に答える