Ich bekomme den oben genannten Fehler beim Durchlaufen mehrerer Schleifen. Ich weiß wirklich nicht, wie das Problem zu erklären, aber ich werde versuchen, mein BestesMatlab: Zellinhaltszuweisung zu einem Nicht-Zellen-Array-Objekt
Code:
function this = tempaddfilt(this,varargin)
fc = linspace(1,200,(200/0.5));
main = struct('seg_err',{},'sig_err',{},'filt_err',{},'fc',{});
for a = 1:length(fc) % fc
q = 0;
w = 0
for i = 1:length(this.segments) % total number signal
for k = 1:length(this.segments{i}) % total number of segments
filt_sig = eval(this.segments{i}(k).signal,this.segments{i}(k).signal(1)); % apply filter to the ith singal and kth segemnt
filt_sig = filt_sig';
main{i}(k).seg_err(a) = std(filt_sig-this.segments{i}(k).ref); % calculate the standard divitation of the filtered signal and previously calculated signal.
q = q+main{i}(k).seg_err(a); add all the error of the segments for the same FC
end
main{i}(1).sig_err(a) = q; % assign the sum of all error of the all segemnts of the same signal
w = w+main{i}(1).sig_err(a); % add all the error of the signals
end
main.filt_err = w; % assign the sum of all error of the all signals
end
this.error_norm = [this.error_norm ;main];
end
end
Grundsätzlich Ich habe 3 Schleifen, 1. Schleife ist für fc, 2. Schleife ist für Signal und 3. Schleife ist für Segmente des Singals. Programm funktioniert gut, wenn fc = 1.
Aber wenn fc 2 ist, erhalte ich folgende Fehlermeldung:
Cell contents assignment to a non-cell array object.
in der Zeile:
main{i}(k).seg_err(a) = std(filt_sig-this.segments{i}(k).ref);
, das ist, wenn i =1
, k=1
, a = 2
der Fehler Referenz sagt Sie sind Versuchen, den Inhalt von Zellen einem Array zuzuordnen, wie A = Cell (1, :); Sie können versuchen, 'std (cell2double (filt_sig-this.segments {i} (k) .ref))' und sehen, was passiert. – GameOfThrows
@GameOfThrows, ich habe nichts namens cell2double gefunden. – user5603723
@CaptainFuture, ich debuggte, ich stoppte das Programm in dieser Zeile und berechnete den Wert im Befehlsfenster. In beiden Fällen gibt es einen Wert zurück. – user5603723