Тригонометрические функции Matlab - PullRequest
0 голосов
/ 11 декабря 2018

Я довольно новичок в Matlab.Я написал код на C ++ для вычисления длины основания треугольника относительно угла альфа, код работает, как и ожидалось.Теперь я хотел бы выполнить ту же задачу в Matlab и построить результаты.

C ++ code

        #include <iostream>
        using namespace std;
        #include <tgmath.h> 

        int a = 135; 
        int b = 125;

        double base;
        double alphaB;
        double alphaC;
        double alphaA;
        float difference;

        #define PI 3.14159265358979323846

        int main() {
            for(int i = 1; i < 90; i++){

               alphaA = i * PI/180;
               alphaB = asin((b*sin(alphaA))/a);
               alphaC = 180*PI/180 - alphaA - alphaB;
               base = (a*sin(alphaC))/(sin(alphaA));

               cout << base << endl;
            }
            return 0;
        }

Сценарий Matlab

y = 0:1:90;
z = my(y);
plot(z,y)

function base = my(x)

a = 135; %Side A lenght
b = 125; %Side B lenght

 f = x * pi/180;
 alphaB = asin((b*sin(f))/a);
 alphaC = 180*pi/180 - f - alphaB;
 base   = (a*sin(alphaC))/(sin(f));
 disp(base);
end

, когда я запускаю скрипт Matlabвывод - только одно число, а график - пустой, поэтому я написал другой скрипт отладки, разбирающий уравнение «(a * sin (alpha)) / (sin (f))» на части

y = 1:1:5;
z = my(y);
plot(z,y)

function base = my(x)

a = 135; %Side A lenght
b = 125; %Side B lenght

 f = x * pi/180;
 alphaB = asin((b*sin(f))/a);
 alphaC = 180*pi/180 - f - alphaB;
 alphaC2 = sin(alphaC);
 sf = sin(f);
 aa = a*alphaC2;
 test = aa/sf;  % division problem
 base   = aa;
 disp(test);
 disp(aa);
 disp(sf);

end

Получаетсяпроблема в том, что когда дело доходит до деления, при отображении "аа, сф" я получил все выходные, 90 чисел.Когда скрипт нажимает «test = aa / SF», у меня один выход (одно число).Как преодолеть эту проблему?

1 Ответ

0 голосов
/ 11 декабря 2018

Вы хотели бы использовать ./ вместо /

/ - это деление матрицы ./ - это деление каждого элемента.

...