overlap logical matrices in MATLAB
    1 view (last 30 days)
  
       Show older comments
    
I have code which runs multiple times (say, 3 times). The code produces logical matrix denoted by 'a' in each loop (denoted by n). I want to get an overlapped logical matrix at the end of the loop. Please suggest.
clear;
close all;
clc;
dis_threshold=0.4;
for n=1:3
    xa_time_step=rand(1,5);
    za_time_step=rand(1,5);
    for k1=1:length(xa_time_step)
        for j1=1:length(xa_time_step)
            d(j1,k1)=sqrt((xa_time_step(j1)-xa_time_step(k1)).^2+(za_time_step(j1)-za_time_step(k1)).^2);
        end
    end
    d1=abs(d);
    d1(d1==tril(d1)) = NaN ;
    a=d1 < dis_threshold ;
    disp(a)
end
2 Comments
  Dyuman Joshi
      
      
 on 4 Oct 2023
				"I want to get an overlapped logical matrix at the end of the loop."
What does overlap mean in this context? Take Logical OR of the outputs? Logical AND? Concatenate the arrays? Horizontally or vertically? or something else?
  Fabio Freschi
      
 on 4 Oct 2023
				What do you mean with "overlapped logical matrixp"? is it the & operator of the 3 matrices created in the loop?
Accepted Answer
  Star Strider
      
      
 on 4 Oct 2023
        dis_threshold=0.4;
a = false(5);                                   % Define Initial 'a'
for n=1:3
xa_time_step=rand(1,5);
za_time_step=rand(1,5);
    for k1=1:length(xa_time_step)
        for j1=1:length(xa_time_step)
            d(j1,k1)=sqrt((xa_time_step(j1)-xa_time_step(k1)).^2+(za_time_step(j1)-za_time_step(k1)).^2);
        end
    end
d1=abs(d);
d1(d1==tril(d1)) = NaN ;
a_temp = d1 < dis_threshold                     % Delete Later
a = a | (d1 < dis_threshold)
% disp(a)
end
.
10 Comments
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


