Cycle of operations on vector sections
    6 views (last 30 days)
  
       Show older comments
    
    Lev Mihailov
 on 4 Apr 2022
  
    
    
    
    
    Commented: Lev Mihailov
 on 4 Apr 2022
            I'm trying to make a cycle that would process a section of the vector and return this section to me changed
x=rand(1,2302)
y=rand(1,2302)
step=100;
for i=1:size(x,2)
    i1=y(i:i+step);
    i2=x(i:i+step);
    a(i)=myfun(i1,i2);
end
%% for example my function
function [m,s] = myfun(x,y)
    n = length(x);
    m = x-0.26;
    s= y-0.77
end
thank you in advance
2 Comments
Accepted Answer
  Davide Masiello
      
 on 4 Apr 2022
        The problem is myfun spits out two vectors of size 1 x step+1.
You could assign this vectors to the rows of a new matrix (see a and b in the example below) .
x = rand(1,2302);
y = rand(1,2302);
step = 100;
for i = 1:size(x,2)-step
    i1 = y(i:i+step);
    i2 = x(i:i+step);
    [a(i,:),b(i,:)] = myfun(i1,i2);
end
function [m,s] = myfun(x,y)
n = length(x); % <--- not needed
m = x-0.26;
s= y-0.77;
end
3 Comments
  Davide Masiello
      
 on 4 Apr 2022
				In that case you can replace 
[a(i,:),b(i,:)]
with
[a(:,i),b(:,i)]
so each output of myfun is stored as a column in the matrices a and b.
More Answers (0)
See Also
Categories
				Find more on Loops and Conditional Statements in Help Center and File Exchange
			
	Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
