MATLAB: Créer une condition et obtenir des résultats

For example, I want to calculate if 0<d<2, F=2*d if 2<d<3, F=5*d
En utilisant d = 0: 0,5: 3 et voulez connaître toutes les valeurs F! comment dois-je faire?

Meilleure réponse

  • Essaye ça. Je l’ai fait de deux façons – choisissez la façon dont vous vouliez / vouliez vraiment.
     

    d=0:0.5:3
    % Initialize F to so we'll have some value placeholder for
    % the case of d = 0, 2, and 3 exactly, which is not in the criteria
    F = zeros(1, length(d));
    % Section 1 : 0<d<2
    indexes1 = d > 0 & d < 2
    F(indexes1) = 2 * d(indexes1)
    % Section 2: 2<d<3, F=2*d
    indexes2 = d > 2 & d < 3
    F(indexes2) = 5 * d(indexes2)
    plot(d, F, 'b.-', 'LineWidth', 2, 'MarkerSize', 20);
    grid on;
    title('What you asked for', 'FontSize', 15);
    %-------------------------------------------------------
    % Alternate, using <=
    F = zeros(1, length(d));
    % Section 1 : 0=<d<2
    indexes1 = d >= 0 & d < 2
    F(indexes1) = 2 * d(indexes1)
    % Section 2: 2<=d<=3, F=2*d
    indexes2 = d >= 2 & d <= 3
    F(indexes2) = 5 * d(indexes2)
    figure
    plot(d, F, 'b.-', 'LineWidth', 2, 'MarkerSize', 20);
    grid on;
    title('What you may want', 'FontSize', 15);