MATLAB Answers

Change matrix bits depending on the rate (Matlab)

3 views (last 30 days)
Afluo Raoual
Afluo Raoual on 13 Mar 2021
Commented: Jan on 15 Mar 2021
Dear members;
I have matrix of B*C dimensions.
and I have to write a program that verify if the final bits are '0' or '1'. If final bits are '0', the program change them to '1'.

Accepted Answer

Jan
Jan on 13 Mar 2021
Edited: Jan on 13 Mar 2021
[s1, s2] = size(A);
d = gcd(s1, s2);
n1 = s1 / d;
n2 = s2 / d;
vCol = n2:n2:s2;
for iCol = 1:numel(vCol)
iRow = (iCol - 1) * n1 + 1;
A(iRow:iRow + n1 - 1, vCol(iCol)) = 1;
end
Alternative - more Matlab'ish without loops:
sizeA = size(A);
n = sizeA ./ gcd(sizeA(1), sizeA(2));
idx = sub2ind(sizeA, 1:sizeA(1), repelem(n2:n2:s2, n1));
A(idx) = 1;
  4 Comments
Jan
Jan on 15 Mar 2021
Thanks for the explanation. It is not trivial to communicate with persons from different cultural regions.

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by