Straight line from all points of A to every single point of B
    4 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
Hi everybody,
i have 2 array with different number of rows (with columns that indicate x, y and z):
A (3x3 duble)
2.5   6.6   9.5
1.6   6.6   2.8
2.6   0.9   1.8
B  (4x3 duble)
2.4   6.7   9.8
2.6   6.9   7.8
2.9  7.7   5.8
3.4   8.8   4.8
I want to track the straight line which passes from all points of A to every single point of B. I made this script but it does not run: 
[m,n]=size(B)
[o,p]=size(A)
STR=-20:.01:20; 
for i = 1:m
C{i}=repmat(A(1:o,:),length(STR),1)'+((B(i,:))-A(1:o,:))'*STR;
end
How can i do it? Thank you! 
3 Commenti
Risposta accettata
  Jan
      
      
 il 12 Mar 2019
        
      Modificato: Jan
      
      
 il 12 Mar 2019
  
      With some guessing:
nB  = size(B, 1)
nA  = size(A, 1)
STR = -20:.01:20; 
n   = numel(STR);
C   = cell(1, nA * nB);
iC  = 0;
for iA = 1:nA
    for iB = 1:nB
        iC    = iC + 1;
        C{iC} = repmat(A(iA,:), n, 1).' + (B(iB, :) - A(iA, :)).' * STR;
    end
end
As far as I can see, you can omit the repmat in Matlab >= 2016b.
0 Commenti
Più risposte (0)
Vedere anche
Categorie
				Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!