Effacer les filtres
Effacer les filtres

Construct quarter circle of data in matrix

2 vues (au cours des 30 derniers jours)
Roel
Roel le 16 Mai 2018
Commenté : Roel le 16 Mai 2018
Hello everyone,
I have a 5000x1 vector P. I would like to make a 5000x5000 matrix where the values of P fill the matrix as if P is dragged clockwise, as shown below:
(As you can see my MS paint skills exceed my matlab skills.)
I don't know how to deal with the circular shape. I see how it is not possible to fit a perfect circle into a matrix, but an approximation will do. How would one go about making a good approximation of the desired matrix?

Réponse acceptée

sloppydisk
sloppydisk le 16 Mai 2018
Modifié(e) : sloppydisk le 16 Mai 2018
I would do it like this:
n = 5000;
P = [randi(n, n, 1); zeros(n, 1)];
[X, Y] = meshgrid(1:n, flip(1:n));
r = round(sqrt(X.^2 + Y.^2));
A = reshape(P(r(:)), n, n);
First I wrote
A = arrayfun(@(x) P(x), r);
but that's stupidly slow of course.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by