why do I get this error in the simulation
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
I'm doing a reactor simulation and it's a long one and it works but now when I add some changes I got this error
Error using griddedInterpolant
The grid vectors must contain unique points.
Error in interp1 (line 161)
F = griddedInterpolant(X,V,method);
Error in reactor_simulation>cross (line 431)
Sig_s_tot_O16_interp = interp1(oxygen_energy_tot, oxygen_cross_tot, e, 'linear');
Error in reactor_simulation>dist2c (line 505)
value = - log ( u ) / cross ( e );
Error in reactor_simulation (line 215)
[ d, seed ] = dist2c ( e, seed );
as I understand that the error because the data file I use does not has a unique points (the energy) so I used this code to found the simller points and I change them to became unique
for i=1:max(size(oxygen_data_tot))-1
if(oxygen_data_tot(i,1)==oxygen_data_tot(i+1))
i=i
end
end
but the problem is that I got the same error again after changing all the poin, so can you help me to know whats the problem to solve it?
0 Kommentare
Akzeptierte Antwort
Torsten
am 23 Mär. 2023
Bearbeitet: Torsten
am 23 Mär. 2023
Before calling "interp1", use
% Sort array oxygen_energy_tot in ascending order
[oxygen_energy_tot_sorted,idx_sort] = sort(oxygen_energy_tot);
oxygen_cross_tot_sorted = oxygen_cross_tot(idx_sorted);
% Delete duplicate values of oxygen_energy_tot
[oxygen_energy_tot,idx_unique] = unique(oxygen_energy_tot_sorted);
oxygen_cross_tot = oxygen_cross_tot_sorted(idx_unique);
3 Kommentare
Torsten
am 24 Mär. 2023
Use
[oxygen_energy_tot_sorted,idx_sorted] = sort(oxygen_energy_tot);
instead of
[oxygen_energy_tot_sorted,idx_sort] = sort(oxygen_energy_tot);
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Multirate Signal Processing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!