Info

This question is closed. Reopen it to edit or answer.

How to multiply special elements

1 view (last 30 days)
Brian
Brian on 7 Nov 2014
Closed: MATLAB Answer Bot on 20 Aug 2021
Hi,
I am a new with Matlab and I need some help. I need to multiply by (-1) all the elements that their row is even and their column is odd or their row is odd and their column is even. How can I do that?
Thanks you in advance
  3 Comments
Image Analyst
Image Analyst on 7 Nov 2014
If this is a homework problem you should have Tagged it as homework below. If so, tag it and read this.
Brian
Brian on 7 Nov 2014
Our teacher told us that we can use the function ind2sub. I know that I can use mod but i dont know after to put a condition. A[i,j] if ([(i+j) mod 2]==0) A[i,j]=-A[i,j]

Answers (2)

Chad Greene
Chad Greene on 7 Nov 2014
Here's one way:
A = magic(5)
[cols,rows] = meshgrid(1:size(A,1),1:size(A,2));
A(mod(rows,2)==0&mod(cols,2)==1 | mod(cols,2)==0&mod(rows,2)==1)=-A(mod(rows,2)==0&mod(cols,2)==1 |mod(cols,2)==0&mod(rows,2)==1)

Image Analyst
Image Analyst on 7 Nov 2014
Simply use numel and linear indexing:
m=randi(255, 5, 6) % Create sample data.
indexesToInvert = 2 : 2 : numel(m);
m(indexesToInvert) = -m(indexesToInvert)
  1 Comment
Brian
Brian on 7 Nov 2014
I think that if the size of the matrix is odd it's not working

Tags

Community Treasure Hunt

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

Start Hunting!