How can I remove repeating values from the vector?
8 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Mariusz Sledz
el 21 de Mzo. de 2020
Comentada: Mariusz Sledz
el 29 de Mzo. de 2020
Hi,
I've got a loop that simulates Simulink model, collects the data and plots everything on the graphs, here is simplified code:
for v = 4:3:26
air_velocity = v;
while abs(old_u - new_u) >= errortolerance % siumlate untill model converges
simOut = sim('TurbineWithVariablePitch_new_.slx',time);
umax = round(max(simOut.Velocity), 2);
old_u = new_u;
new_u = umax;
disp(['Current iteration: ',num2str(iteration), ' for time: ', num2str(time, '%10.5e') ])
if abs(old_u - new_u) <= errortolerance
cprintf('*blue',['Solution fully converged with the current error of ', num2str(abs(old_u - new_u))]);
cprintf('\n');
else
disp(['Solution did not converged with the current error of ', num2str(abs(old_u - new_u))])
end
if iteration >= maxiteration
cprintf('*red','Solution did not converged\n');
break
end
iteration = iteration +1;
time = time + timestep;
end
simulationtime = [0:0.01:2000];
a = round(simOut.AoA.signals.values);
n=max (numel(simulationtime)); %make the vectors the same size
u(end+1:n)=nan;
a(end+1:n)=nan;
AoAout = [AoAout , a]; %add to the results
SimulationTime = [SimulationTime , simulationtime'];
end
f4 = figure('Name','AoA vs Time');
plot(SimulationTime, AoAout, 'linewidth', 2);
ylabel('AoA (deg)');
xlabel('Time (s)');
The problem is, I'm getting repitetive values for AoA:

They are not always the same so unique command doesn't work... I've been stuck on this problem for a while. I'm fairly new to MATLAB and tring to achieve something similar to this:

6 comentarios
Respuesta aceptada
Más respuestas (0)
Ver también
Categorías
Más información sobre Creating, Deleting, and Querying Graphics Objects en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
