MATLAB Answers

Trying to create a matrix by nesting a for loop in another for loop

1 view (last 30 days)
Michael Costa
Michael Costa on 31 Oct 2020
Commented: Michael Costa on 1 Nov 2020
I am trying to create a nx9 matrix by nesting a for loop in another for loop, where n is the number of iterations of the first for loop, and 9 is the number of iterations in the nested for loop. Specifically, I am iterating through different values for the NTU of a heat exchanger in the first loop, and the nested loop iterates through 9 different surface areas (A) from actual heat exchangers. The overall heat transfer coefficient is calculated for each heat exchanger for each different NTU. Here is what I have so far
i = 0;
for NTU = 2.5:0.1:3.5
i = i + 1;
eff(i) = effectiveness(NTU, c, 'One Shell Pass');
Q(i) = eff(i)*Qmax; %kW
T5(i) = Q(i)/Cmin + T4;
T14(i) = T13 - Q(i)/Cmax;
NTU_i(i) = NTU;
%Finding the overall transfer coefficient
for j = 1:9
U(j) = ((NTU*Cmin)/A(j));
end
end

Accepted Answer

Sindar
Sindar on 1 Nov 2020
Edited: Sindar on 1 Nov 2020
No need for loops, except if effectiveness doesn't accept arrays
% nx1
NTU = (2.5:0.1:3.5).';
for i=1:length(NTU)
eff(i) = effectiveness(NTU(i), c, 'One Shell Pass');
end
Q = eff*Qmax; %kW
T5 = Q./Cmin + T4;
T14 = T13 - Q./Cmax;
% make sure A is the right shape
if isequal(size(A),[1 9])
elseif isequal(size(A),[9 1])
A = A.';
else
error('A is not the expected size: 1x9')
end
%Finding the overall transfer coefficient
% elementwise division will expand nx1 NTU / 1x9 A into nx9 U
U = (NTU.*Cmin)./A;

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by