这是我绘制测量结果时 Matlab 组装的五行。我需要根据每行的平均值创建一个函数。我正在使用 Matlab,我希望 Matlab 有一个优雅的解决方案来解决我的问题。如果没有,我会接受任何建议。
非常感谢提前
Mike 这里是我的代码的一个小版本:
% Read text file
clc
clear all
%My Data is stored in that file.
fid = fopen(uigetfile('FILE.txt'), 'rt');
%The next lines are where I create my vectors, read the data, reshape my matrices etc
%I dont think you need to worry about it
%--------------------------------------------------------------------------
nrow = 16;
ncol = 10;
row_index = [9,10,11,12,13,14,15,16,8,7,6,5,4,3,2,1];
col_index = [1,2,3,4,5,6,7,8,9,10];
matAnzahl = 1;
line = '';
naechsterunde = 1;
while strcmp(line,'')
line = fgetl(fid);
C = textscan(line,'%f %f %f %f');
gewicht(matAnzahl) = C{1};
dots(matAnzahl) = C{2};
durchschnitt(matAnzahl) = C{3};
absolutdurchschnitt(matAnzahl) = C{4};
vector = fscanf(fid,'%u',160);
t = 1;
for i = 1:nrow
for j = 1:ncol
data2d(row_index(i), col_index(j)) = vector(t);
t = t + 1;
end
end
data2d;
fgetl(fid);
line = fgetl(fid);
if matAnzahl > 1
if gewicht(matAnzahl) < gewicht (matAnzahl-1)
naechsterunde = naechsterunde + 1;
end
end
matAnzahl = matAnzahl + 1;
end
matAnzahl = matAnzahl - 1;
%--------------------------------------------------------------------------
%This is where I create my y- vectors that are being ploted later on.
%y1-y5 are my results and I need to get the error value out of them and
%I need a function that replaces them
%Thank you
anzahl1 = 1;
for i = 1:matAnzahl/naechsterunde
y1(i) = absolutdurchschnitt(anzahl1);
if anzahl1 < matAnzahl
anzahl1 = anzahl1 + 1;
end
end
for i = 1:matAnzahl/naechsterunde
y2(i) = absolutdurchschnitt(anzahl1);
if anzahl1 < matAnzahl
anzahl1 = anzahl1 + 1;
end
end
for i = 1:matAnzahl/naechsterunde
y3(i) = absolutdurchschnitt(anzahl1);
if anzahl1 < matAnzahl
anzahl1 = anzahl1 + 1;
end
end
for i = 1:matAnzahl/naechsterunde
y4(i) = absolutdurchschnitt(anzahl1);
if anzahl1 < matAnzahl
anzahl1 = anzahl1 + 1;
end
end
for i = 1:matAnzahl/naechsterunde
y5(i) = absolutdurchschnitt(anzahl1);
if anzahl1 < matAnzahl
anzahl1 = anzahl1 + 1;
end
end
for i = 1:matAnzahl/naechsterunde
gewichtPlot(i) = gewicht(i);
i = i + 1;
end
plot(gewichtPlot,y1,gewichtPlot,y2,gewichtPlot,y3,gewichtPlot,y4,gewichtPlot,y5)
%--------------------------------------------------------------------------