# Finding value of a matrix

2 views (last 30 days)

Show older comments

I have a 3x3 matrix, for example:

d=rand(3,3)

Now i want to implement the equation

V=1/2(d(q4,q5)+d(q5,q6))

where q5 is the centre pixel

q4,46 are neighbouring pixels

for example

d= q1 q2 q3

q4 q5 q6

q7 q8 q9

please assist

##### 1 Comment

### Accepted Answer

Walter Roberson
on 19 Dec 2012

Hard to tell. You might be asking for

oldMatrix = double(ImageMatrix);

NewMatrix = ( oldMatrix(:,1:end-1) + oldMatrix(:,2:end) ) ./ 2;

But perhaps your "d" matrix is trying to talk about weighting the pixel values ? If so then let w1 be the weight for what you showed as d(q4,q5), and let w2 be the weight for what you showe as d(q5,q6), and then

NewMatrix = ( w1 .* oldMatrix(:,1:end-1) + w2 .* oldMatrix(:,2:end) ) ./ 2;

##### 12 Comments

### More Answers (2)

Muruganandham Subramanian
on 19 Dec 2012

Edited: Muruganandham Subramanian
on 19 Dec 2012

d=ones(3);

V=1/2*(d(d(2,2),d(2,2))+d(d(2,2),d(2,3)))

but, If you're using rand(), d(2,2),etc.. can't be accessible, if not using ceil() or floor()..Is this you want?

##### 7 Comments

Muruganandham Subramanian
on 19 Dec 2012

@FIR, I din't worked on images, anyway, by using imread() read your image and do the calculation

Image Analyst
on 19 Dec 2012

##### 0 Comments

### See Also

### Community Treasure Hunt

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

Start Hunting!