Construct quarter circle of data in matrix
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/190596/image.jpeg)
(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?
0 commentaires
Réponse acceptée
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)
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!