why mod(rref(A), 2) does not give the correct result?

8 views (last 30 days)
Lets say I have the followings all in mod 2
a = [1 1 0 0 0]'
a = 5×1
1 1 0 0 0
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
b = [1 0 1 0 1]'
b = 5×1
1 0 1 0 1
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
c = [0 1 1 0 1]'
c = 5×1
0 1 1 0 1
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
clearly, c = a + b in mod 2
However when I run the command
mod(rref([a b c]), 2)
ans = 5×3
1 0 0 0 1 0 0 0 1 0 0 0 0 0 0
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
It does not give the corret result for linear combination in mod 2? My expect answer should be:
expected_ans = [1 0 1; 0 1 1; 0 0 0; 0 0 0; 0 0 0]
expected_ans = 5×3
1 0 1 0 1 1 0 0 0 0 0 0 0 0 0
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
Could anyone explain why?

Accepted Answer

David Goodmanson
David Goodmanson on 30 May 2025
Edited: David Goodmanson on 30 May 2025
Hi Lily,
Although c is a linear combination of a and b mod 2, rref does not know anything about mod 2.
rank([a b c])
ans = 3
As far as rref is concerned, a, b and c are linearly independent ('mod' not being a linear operation under the usual addition of numbers). So you get three nonzero rows.

More Answers (0)

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!