probier es mal wie folgt:

Code:
clear all;
s = serial('COM1','BAUD',19200,'DataBits',8,'StopBits',1,'FlowControl','hardware');
fopen(s);
init=false;
%fid=fopen('test.dat','w')
i=1;
counter=1;
buffer=21;  
  
for counter=1:30
        if i==21
        i=i-20
        hold off;
         end;
tlog=false; %Logical initialisieren
    while ~tlog
tline=fscanf(s);   %naechste Zeile aus ASCII-File holen
index_s=regexpi(tline,'Hauptboard'); %String in tline suchen
             if ~isempty(index_s)    %Treffer?
                    tlog=true;
                    if i==1 & ~init
                    boardanzahl=0;
                    end;
                     for j=1:4
                         
                       index_s=regexpi(tline,':-(');
                        if isempty(index_s)
                                 index_sem=regexpi(tline,',');   %Trennzeichen suchen, wird hier
                                  %nicht ausgewertet
                                  temp=strrep(tline,',',' '); %Trennzeichen durch Blank ersetzen
                                  string=strread(temp,'%s',6);    %String-Array erzeugen, Anzahl
                                  %der Variablen angeben
                                  temperatur(i,j)=sscanf(char(string(3)),'%d'); %Array-Elemente ausgeben
        
                                  luftfeuchtigkeit(i,j)=sscanf(char(string(4)),'%d'); %Array-Elemente ausgeben
                                  licht(i,j)=sscanf(char(string(5)),'%d'); %Array-Elemente ausgeben
                                  reichweite(i,j)=sscanf(char(string(6)),'%d'); %Array-Elemente ausgeben
                                  board(j)=true;
                                  if i==1 & ~init
                                  boardanzahl=boardanzahl+1;
                                  end;
                        else
                            board(j)=false;
                        end;%zweites if
                       tline=fscanf(s);
                     end %for-Schleife
                     %--------------------------PLOT-Funktion-------------
                     for k=1:2
                        x(k)=i-2+k;
                      end%for-Schleife
                      if i>1
                         
subplot(2,2,1);
plot(temperatur);
subplot(2,2,2);
plot(luftfeuchtigkeit);
subplot(2,2,1);
plot(reichweite);
subplot(2,2,1);
plot(licht);

                             init=true;
                             pause(0.000001);
                           end;%if
                                          end; %erstes if

    end % while Schleife
i=i+1;


end %erstes For

fclose(s);
%fclose(fid);
Ich kann es aber nicht sicher sagen. Am besten wäre es du stellst mal so ein testfile hier rein. Dann kann man es mal ausprobieren. So wie ich das sehen sind die vier matrizen (temperatur, licht, luftfeuchtigkeit, reichweite) so aufgebaut, dass die spalten die boards sind und die zeilen die Messwerte.

mfg
inschenjoer