grouping rows and store is separate matrix
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Oday Shahadh
le 11 Juin 2020
Commenté : Oday Shahadh
le 11 Juin 2020
hi all,
in the script below I have p which is (m,3) vectors matrix, Itried to group this matrix according to z-value in L1 vector, so in case L1 is (0,0-2), rows of matrix p should be filtered according to z=-2, and each filtered rows have to be seperatly stored. I failed to do this pls help
clc
clear
close all
format long
x=[];
y=[];
z=[];
for L=-2:0.5:2
for r=0:.5:2
for theta=0:45:360;
x=[x;r*cos(theta*pi/180)];
y=[y;r*sin(theta*pi/180)];
z=[z,L];
L1=[x-x,x-x,z'];
end
end
end
lx=L1(:,1);ly=L1(:,2);lz=L1(:,3);
z=z';
p=[x,y,z];
a = cell(length(L1),1);
for ii = 1:length(L1);
a{ii} = p(p(:,3) == L1(ii,3),:);
end
celldisp(a)
0 commentaires
Réponse acceptée
Sai Gudlur
le 11 Juin 2020
Hello Oday,
I couldn't understand you question completely but to to certain degree i could.
x=[x;r*cos(theta*pi/180)];
y=[y;r*sin(theta*pi/180)];
z=[z,L];
Do not think this is necessary. if i were u would do it this way.
x=[];
y=[];
z=[];
L = -2:0.5:2;
r=(0:.5:2)';
theta=0:45:360;
x = (r.*cos(theta*pi/180));
L1=[x-x,x-x,z'];
Again this part are you trying subtract elements in the 2nd column of matrix x from the 1st Column?
A little more detail might help.
5 commentaires
Sai Gudlur
le 11 Juin 2020
I do not know how much would this help but try.
"ismember" or if i were you would try "intersect". This would return the values that have the same A&B "z" value. and then you could proceed to do that operation.
Another possibility is you could use "Unique" and find the ones that aren't the same and later use the common values of A & B.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!