Buongiorno a tutti!!!
Sto programmando un algoritmo in matlab e sono incespicato in questo errore:
"In an assignment A(I) = B, a matrix A cannot be resized."
La parte dell'algoritmo affetta da tale errore è il programma principale... Non riesco a capire cosa intenda questo errore, potreste aiutarmi per favore?
Le variabili QBac e QBre sono lette da tabella e QBac2, QBre2, Liv, QfLiv, Codice, fail e Franco vengono ricavati nelle function.
for i = 1:length(QBac)
aux = [0, 0, 0, 0, 0];
if QBac(i) <= 100
Codice(i) = 1;
QBre2(i) = QBre(i);
QBac2(i) = QBac(i);
Liv(i) = 0;
QfLiv(i) = 0;
fail(i) = 0;
elseif 100 < QBac(i) && QBac(i) <= 200
Codice(i) = 2;
[aux(1), aux(2), aux(3), aux(4), aux(5)] = CodVerde(QBac(i), QBre(i), dati_QfLiv);
Liv(i) = aux(3);
Franco(i) = trova_Franco(QBre(i), Liv(i), dati_Franco);
if Franco(i) >= 1.00
QBac2(i) = aux(1);
QBre2(i) = aux(2);
Liv(i) = aux(3);
QfLiv(i) = aux(4);
fail(i) = 1;
else
QBac2(i) = QBac(i);
QBre2(i) = QBre(i);
Liv(i) = 0;
QfLiv(i) = 0;
fail(i) = 0;
end
elseif 200 < QBac(i) && QBac(i) <= 350
Codice(i) = 3;
[aux(1), aux(2), aux(3), aux(4), aux(5)] = CodGiallo(QBac(i), QBre(i), dati_QfLiv);
Liv(i) = aux(3);
Franco(i) = trova_Franco(QBre(i), Liv(i), dati_Franco);
if Franco(i) >= 1.00
QBac2(i) = aux(1);
QBre2(i) = aux(2);
Liv(i) = aux(3);
QfLiv(i) = aux(4);
fail(i) = 1;
else
QBac2(i) = QBac(i);
QBre2(i) = QBre(i);
Liv(i) = 0;
QfLiv(i) = 0;
fail(i) = 0;
end
elseif 350 < QBac(i) && QBac(i) <= 500
Codice(i) = 4;
[aux(1), aux(2), aux(3), aux(4), aux(5)] = CodArancio(QBac(i), QBre(i), dati_QfLiv);
Liv(i) = aux(3);
Franco(i) = trova_Franco(QBre(i), Liv(i), dati_Franco);
if Franco(i) >= 1.00
QBac2(i) = aux(1);
QBre2(i) = aux(2);
Liv(i) = aux(3);
QfLiv(i) = aux(4);
fail(i) = 1;
else
QBac2(i) = QBac(i);
QBre2(i) = QBre(i);
Liv(i) = 0;
QfLiv(i) = 0;
fail(i) = 0;
end
else
Codice(i) = 5;
[aux(1), aux(2), aux(3), aux(4), aux(5)] = CodRosso(QBac(i), QBre(i), dati_QfLiv);
QBac2(i) = aux(1);
QBre2(i) = aux(2);
Liv(i) = aux(3);
QfLiv(i) = aux(4);
fail(i) = aux(5);
end
end
T = table(QBac, QBre, Codice, QBac2, QBre2, Liv, QfLiv, Franco, fail);
filename = 'risultati.xlsx';
writetable(T, filename, 'Sheet', 1, 'Range','A1')
Vi ringrazio anticipatamente del vostro aiuto!
Alessandro