diff --git a/scripts/createFit.m b/scripts/createFit.m
new file mode 100644
index 0000000..74854fe
--- /dev/null
+++ b/scripts/createFit.m
@@ -0,0 +1,40 @@
+function [fitresult, gof] = createFit(SA, FY)
+%CREATEFIT(SA,FY)
+%  Create a fit.
+%
+%  Data for 'untitled fit 1' fit:
+%      X Input: SA
+%      Y Output: FY
+%  Output:
+%      fitresult : a fit object representing the fit.
+%      gof : structure with goodness-of fit info.
+%
+%  See also FIT, CFIT, SFIT.
+
+%  Auto-generated by MATLAB on 04-Jan-2024 14:49:41
+
+
+%% Fit: 'untitled fit 1'.
+[xData, yData] = prepareCurveData( SA, FY );
+
+% Set up fittype and options.
+ft = fittype( 'fourier8' );
+opts = fitoptions( 'Method', 'NonlinearLeastSquares' );
+opts.Display = 'Off';
+opts.MaxFunEvals = 100000;
+opts.MaxIter = 50000;
+opts.StartPoint = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.29927003160889];
+
+% Fit model to data.
+[fitresult, gof] = fit( xData, yData, ft, opts );
+
+% % Plot fit with data.
+% figure( 'Name', 'untitled fit 1' );
+% h = plot( fitresult, xData, yData );
+% legend( h, 'FY vs. SA', 'untitled fit 1', 'Location', 'NorthEast', 'Interpreter', 'none' );
+% % Label axes
+% xlabel( 'SA', 'Interpreter', 'none' );
+% ylabel( 'FY', 'Interpreter', 'none' );
+% grid on
+
+
diff --git a/scripts/similarities.m b/scripts/similarities.m
index ed0a591..84def03 100644
--- a/scripts/similarities.m
+++ b/scripts/similarities.m
@@ -1,6 +1,7 @@
 %% please open Magic Formular APP first
 clear
-n = 20; % <=60
+n = 20
+mkdir('similarityData');
 %%
 directoryPath  = "..\sorted_data";
 subdirectories = getSubdirectories(directoryPath);
@@ -13,7 +14,7 @@ subdirectories_list = contents([contents.isdir] & ~ismember({contents.name}, {'.
 
 % Extract and display the names of the subdirectories
 subdirectoryNames = {subdirectories_list.name};
-%% 
+%%
 figure()
 
 for i=1:length(subdirectories)
@@ -23,6 +24,7 @@ for i=1:length(subdirectories)
     measurement = measurements(n);
 
     [SX,SA,FZ,IP,IA,VX,FX,FY,MZ,MY,MX,W,T] = unpack(measurement);
+    FY = smoothdata(FY, "gaussian",100);
     if i < length(subdirectories)/3
         plot(SA, FY, 'LineWidth', 1)
     elseif i <= length(subdirectories)/3*2
@@ -30,9 +32,27 @@ for i=1:length(subdirectories)
     else
         plot(SA, FY, '-.','LineWidth', 1)
     end
+    SAA{i} = SA;
+    FYY{i} = FY;
     hold on
 end
 legend(subdirectoryNames{:})
 title("Similarities, n=",n)
 xlabel("Slip Angle")
-ylabel("FY")
\ No newline at end of file
+ylabel("FY")
+%% without plot 
+for n=1:60
+    for i=1:length(subdirectories)
+        fileMeasurement = fullfile("..\sorted_data", subdirectories{i}, "\cornering.mat");
+        parser = tydex.parsers.FSAETTC_SI_ISO_Mat();
+        measurements = parser.run(fileMeasurement);
+        measurement = measurements(n);
+
+        [SX,SA,FZ,IP,IA,VX,FX,FY,MZ,MY,MX,W,T] = unpack(measurement);
+        FY = smoothdata(FY, "gaussian",100);
+        SAA{i} = SA;
+        FYY{i} = FY;
+    end
+    file_name = ['similarityData\nEqu' num2str(n) '.mat'];
+    save(file_name, 'SAA', 'FYY');
+end
diff --git a/scripts/similarities2.m b/scripts/similarities2.m
new file mode 100644
index 0000000..28f90b8
--- /dev/null
+++ b/scripts/similarities2.m
@@ -0,0 +1,58 @@
+clear;
+clc;
+% Use the dir function to get information about files and directories
+directoryPath = ".\similarityData";
+
+% Get a list of all files in the directory
+files = dir(fullfile(directoryPath, '*.mat')); % You can adjust the file extension as needed
+
+% Extract file names
+fileNames = {files.name};
+
+for n=1:length(fileNames)
+    % fit the curve of 43075 , 8 inch
+    filePath = fullfile(directoryPath, fileNames(n));
+    load(filePath)
+    [fitresult, gof] = createFit(SAA{8},FYY{8});
+    residual = [];
+
+    % Evaluate the fitted curves
+    for i=1:length(SAA)
+        y_fit = fitresult(SAA{i});
+        % Calculate residuals
+        residual = [residual, mean(abs(FYY{i} - y_fit))];
+    end
+    residuals{n} = residual;
+end
+
+for i=1:length(residual)
+    residuals_sum{i} = 0;
+    num = length(fileNames);
+    for j=1:length(fileNames)
+        if isnan(residuals{j}(i))
+            num = num - 1;
+            residuals{j}(i) = 0;
+        end
+        residuals_sum{i} = residuals{j}(i) + residuals_sum{i};
+    end
+    residuals_mean{i} = residuals_sum{i}/num;
+end
+% figure()
+% idx = linspace(1,length(SAA),length(SAA));
+% for i=1:length(fileNames)
+%     plot(idx, residuals{i}, "-*")
+%     hold on;
+% end
+% title("Residuials")
+% legend(fileNames)
+% xlabel("order of the tires(8 is our traget tire)")
+
+figure()
+idx = linspace(1,length(SAA),length(SAA));
+y = cell2mat(residuals_mean)
+plot(idx, y, "-*")
+title("Average Absolute Residuials")
+legend(fileNames)
+xlabel("order of the tires(8 is our traget tire)")
+xticks(idx)
+grid on
\ No newline at end of file