Effacer les filtres
Effacer les filtres

How to write a for loop code with an undetermined value

1 vue (au cours des 30 derniers jours)
ercan duzgun
ercan duzgun le 7 Fév 2021
Commenté : acun67 acu le 9 Fév 2021
I am stuck while writing this code. Could you give any advise? The matrix N might consist of 16 different values at maximum(0-16), depending on the previous codes.
x=-20:5:20;
y=-20:5:20;
z=40:5:80;
[X,Y,Z]=meshgrid(x,y,z)
h=0;
for i=1:1:length(x)
for j=1:1:length(y)
for k=1:1:length(z)
h=h+1
M(h,:)=[X(i,j,k), Y(i,j,k), Z(i,j,k)];
% N(h)=a_MATLAB_function([M(h,1); M(h,2); M(h,3) ],[0;0;0]);
end
end
end
N=[12 12 12 12 12 12 12 8 4 4 4 12 12 ]; % Matrix N's size is 1x729 actually.
% Here it is simplified as a shorter row.
NN = unique(N); NN_length=length(NN);
S=[35 50 100 200];
figure; hold on;
for i=1:1:NN_length
NNN(i,:)=find(N==NN(i))
scatter3(M(NNN(i,:),1),M(NNN(i,:),2),M(NNN(i,:),3),S(i))
end
hold off;
For the first value of i=1, it is fine. But later I receive error. Because while writing the second row of NNN, first row and second row dimension doesn't match. What can I do? Thanks in advance.

Réponse acceptée

Jan
Jan le 7 Fév 2021
Modifié(e) : Jan le 7 Fév 2021
Is there a reason to collect NNN in an array?
for i = 1:NN_length
NNN = (N == NN(i)); % Without FIND: faster logical indexing
scatter3(M(NNN, 1), M(NNN, 2), M(NNN, 3), S(i))
end
If you do need NNN later on:
NNN = cell(1, NN_length)
for i = 1:NN_length
NNN{i} = (N == NN(i)); % Without FIND: faster logical indexing
scatter3(M(NNN{i}, 1), M(NNN{i}, 2), M(NNN{i}, 3), S(i))
end
  8 commentaires
Walter Roberson
Walter Roberson le 8 Fév 2021
The steps to enable a license to use Mathworks itself as the license server are described at https://www.mathworks.com/help/licensingoncloud/matlab-on-the-cloud.html .
This is available for individual licenses -- Educational or Standard (commercial / professional), but not for Home or Student licenses.
If I recall correctly, the people who offered that old cracked software were arrested for software piracy.
acun67 acu
acun67 acu le 9 Fév 2021
thank you for sharing your knowledge.I am not using this installation and will try to solve my problem using Matlab online.

Connectez-vous pour commenter.

Plus de réponses (1)

David Hill
David Hill le 7 Fév 2021
What are you trying to plot? What is M?
[n,nn,nnn]=unique(N);%;might want to look at the outputs here, they might help you
  1 commentaire
ercan duzgun
ercan duzgun le 7 Fév 2021
@David Hill , Sorry I forgot about M. Now I edited the codes. M is meshgrid and locations of points in 3D.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Introduction to Installation and Licensing dans Help Center et File Exchange

Tags

Produits


Version

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by