MATLAB: How to save the data every time i run 3 For loops

for loopMATLABsavesimulink

I run a Mass-spring-damper system and i want to calculate percentage error of all combinations. Then find the value with the minimum error. But i could not save the data . It only saves the one of the last
for K1 = 170000:5000:210000
for B1 = 0:10:100
for M1 = 1:0.05:1.2
sim('MSDsystem');
Display=ans.Displacement(:,2);
delta=abs(Display-Mass1(:,2));
percentagediff=delta./Mass1(:,2);
meanpctdiff=mean(percentagediff);
mat(K1,:)=meanpctdiff
end
end
end

Best Answer

  • K1 = 170000:5000:210000;
    B1 = 0:10:100;
    M1 = 1:0.05:1.2;
    kn = numel(K1);
    bn = numel(B1);
    mn = numel(M1);
    mat=zeros(kn,bn,mn); % preallocate
    for k1 = 1:kn
    for b1 = 1:bn
    for m1 = 1:mn
    S=sim('MSDsystem');
    Display=S.Displacement(:,2);
    delta=abs(Display-Mass1(:,2));
    percentagediff=delta./Mass1(:,2);
    meanpctdiff=mean(percentagediff);
    mat(k1,b1,m1)=meanpctdiff;
    end
    end
    end