способ, которым функция plot в matlab рисует кортежи данных (x, y) в графЭто означает, что сначала вы должны сгенерировать эти кортежи или пары значений xy.Например, как это:
% generate a vector of values from -5 to +5
x = [-5:0.1:5];
% put every element of x in the expression -> y has same length
y = 1 ./ (1 + exp(x));
% plot the two vectors. note that the tuplets are defined by the array index
plot(x,y)
Также обратите внимание, что существует два вида использования файла .m (сценарии matlab):
Функции: Если ваш файл начинается с ключевого слова function
, имя файла должно соответствовать имени этой функции.Это тогда делает функцию доступной в вашем рабочем пространстве, как статический метод в C ++ или Java - так что в вашем случае вы можете вызывать свою функцию coherence_task2 (R, omega, tau, m, i)
из консоли следующим образом: coherence_task2(123,44,55,66)
.
Кроме того, ваша функция теперь не имеет возвращаемого аргумента.Вы можете определить возвращаемый аргумент в файле .m (первая строка): function y = SomeFunctionName(x)
.В теле функции просто присвойте значение y перед endfunction - это значение автоматически возвращается после выполнения.Это позволяет вам вызывать такую функцию из консоли и получать результат: anotherY = SomeFunctionName(x)
.
Пакетный файл: Если файл не начинается с function
, он интерпретируется какпросто последовательность команд, выполняемых в вашем рабочем пространстве - как если бы вы вводили их в консоли.Например, вы можете поместить то, что я написал выше (пример графика), в файл .m.Затем вы можете выполнить скрипт / последовательность, записав имя файла в консоль (без каких-либо аргументов).
Вот пример пакетного файла, который я написал несколько дней назад, который также показывает, что вы не чертите функции, вы строите пары xy-значение:
n = [1:6000];
theta = 2*pi/(137.51/180) * n;
r = 0.1*sqrt(n);
x = cos(theta).*r;
y = sin(theta).*r;
plot(x, y, '.');