How do i fix this error?
    2 views (last 30 days)
  
       Show older comments
    
Answers (1)
  dpb
      
      
 on 24 Sep 2025
        
      Edited: dpb
      
      
 on 26 Sep 2025
  
      Paste the code as text and the complete error message; can't do anything with an image.
The statement
f=zeros(num_pipes,1);
creates a vector of three elements so when you write
for i=1:num_pipes
  ...
  f(i)=32*f*pipe_length(i)*Q(i)^2 ...
then the RHS is going to also be a 3-vector of zeros that you're trying to store into one location.  Can't do that.
One presumes the second, unsubscripted f is supposed to be a friction factor based on some other correlation.  Fix that to be some other scalar variable.
3 Comments
  Torsten
      
      
 on 28 Sep 2025
				
      Edited: Torsten
      
      
 on 28 Sep 2025
  
			% Calculate Darcy-Weisbach friction factor using the given equation
        f(i) = (32 * f * pipe_length(i) * Q(i)^2) / (pi * gc * pipe_diameter(i)^5);        
This f (bold)
f(i) = (32 * f * pipe_length(i) * Q(i)^2) / (pi * gc * pipe_diameter(i)^5);
is a vector while this f(i) (bold)
f(i) = (32 * f * pipe_length(i) * Q(i)^2) / (pi * gc * pipe_diameter(i)^5);
is a scalar. 
So you try to assign a vector 
(32 * f * pipe_length(i) * Q(i)^2) / (pi * gc * pipe_diameter(i)^5);
to a scalar 
f(i)
- consequently the error message.
@dpb suspected that f is a friction factor you forgot to specify in your code - thus that f is different from f(i). We don't know.
Shouldn't the headloss be prescribed externally if you want to compute volumetric flowrates ? I get the impression that both quantities are treated as unknowns in your code.
See Also
Categories
				Find more on Fluid Dynamics 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!


