Asked by Rufat Imanov
on 24 Jul 2019

As it is said in the question, I am looking for a Matlab function that generates random projection matrices, so that I can use it for linear programming.

Answer by KALYAN ACHARJYA
on 24 Jul 2019

Edited by KALYAN ACHARJYA
on 24 Jul 2019

function P=projection_mat(n)

A=colbasis(magic(n));

P=A*inv(A'*A)*A';

end

The colbasis function is here

Here n represent size of square matrix. Please note that I have answered this question from here

Command Window:

>> y=projection_mat(6)

y =

0.7500 -0.0000 0.2500 0.2500 -0.0000 -0.2500

-0.0000 1.0000 0.0000 -0.0000 -0.0000 0.0000

0.2500 0.0000 0.7500 -0.2500 -0.0000 0.2500

0.2500 -0.0000 -0.2500 0.7500 -0.0000 0.2500

-0.0000 -0.0000 -0.0000 -0.0000 1.0000 -0.0000

-0.2500 0.0000 0.2500 0.2500 -0.0000 0.7500

You can generate any size matries, just pass the same size matrix to colbasis function.

Hope it helps!

Rufat Imanov
on 25 Jul 2019

KALYAN ACHARJYA
on 25 Jul 2019

Is there any necessity having fixed size matrices?

>> y=projection_mat(6)

y =

0.7500 -0.0000 0.2500 0.2500 -0.0000 -0.2500

-0.0000 1.0000 0.0000 -0.0000 -0.0000 0.0000

0.2500 0.0000 0.7500 -0.2500 -0.0000 0.2500

0.2500 -0.0000 -0.2500 0.7500 -0.0000 0.2500

-0.0000 -0.0000 -0.0000 -0.0000 1.0000 -0.0000

-0.2500 0.0000 0.2500 0.2500 -0.0000 0.7500

>> y=projection_mat(5)

y =

1.0000 -0.0000 -0.0000 -0.0000 -0.0000

-0.0000 1.0000 -0.0000 -0.0000 -0.0000

-0.0000 -0.0000 1.0000 -0.0000 0.0000

-0.0000 -0.0000 -0.0000 1.0000 0.0000

-0.0000 -0.0000 -0.0000 -0.0000 1.0000

>>

Rufat Imanov
on 25 Jul 2019

Sign in to comment.

Answer by Bruno Luong
on 25 Jul 2019

Edited by Bruno Luong
on 25 Jul 2019

n = 5

r = 3; % rank, dimension of the projection subspace

[Q,~] = qr(randn(n));

Q = Q(:,1:r);

P = Q*Q' % random projection matrix P^2 = P, rank P = r

Rufat Imanov
on 25 Jul 2019

Bruno Luong
on 25 Jul 2019

Bruno Luong
on 26 Jul 2019

I wonder if you mistaken "orthogonal projection matrix" and "projection matrix that is orthogonal". They are not the same.

Mine is "orthogonal projection matrix", which is projection matrix (P^2==P) that has additional properties

- symmetric
- all eigen values are 0 or 1.

Sign in to comment.

Answer by Image Analyst
on 25 Jul 2019

Not sure what you mean by projection, but the radon transform does projections. That's its claim to fame. It basically projects a matrix along any angle and gives you the sum of the interpolated values along the projection angle. This is the crucial function for reconstructing 3-D volumetric CT images from 2-D projections.

The radon() function requires the Image Processing Toolbox.

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 0 Comments

Sign in to comment.