Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 12.11.2013
Сообщений: 7

Функции MatLab

09.11.2014, 10:51. Показов 1672. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день,
Пожалуйста, помогите разобраться.
Сделал простейшую функцию:

Matlab M
1
2
3
4
5
6
7
8
9
function [ y ] = f2( x )
%UNTITLED2 Summary of this function goes here
%   Detailed explanation goes here
if (x<0)
    y=0;
else 
    y=1;
end;
end
В консоле все работает
>> f2(-1)
ans =
0
>> f2(1)
ans =
1

Однако в самом коде:
Matlab M
1
2
t=[-3:0.1:3];
plot(t,f2(t));
Строит прямую, а не 1(t).
В чем может быть дело. Спасибо!!!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.11.2014, 10:51
Ответы с готовыми решениями:

Поиск экстремума функции одной переменной с использованием языка MatLab и и встроенной функции fminbnd
помогите пожалуйста с лабой, или хотя бы подскажите что как использовать эти функции :( мапл только что скачал, никогда им до этого не...

График функции в Matlab
Здравствуйте. Хочу построить график такой вот функции f = \int_{-\frac{T}{2}}^{\frac{T}{2}}\sum_{j = 1}^{2}{\delta }_{j} {F}_{m}...

Встроенные функции Matlab
Здравствуйте. По какой-то причине код не работает. Странно, что встроенные функции inv(A) и A\b выдают ошибку, притом, что если...

11
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
09.11.2014, 11:18
Цитата Сообщение от TimkaTV Посмотреть сообщение
Строит прямую, а не 1(t).
В чем может быть дело.
Посмотрите на возвращаемое значение.Вы передаете массив,а получаете скаляр.
0
0 / 0 / 0
Регистрация: 12.11.2013
Сообщений: 7
09.11.2014, 12:07  [ТС]
Спасибо за ответ!
Matlab M
1
2
3
4
5
6
7
8
9
function y = f2(x)
%UNTITLED2 Summary of this function goes here
%   Detailed explanation goes here
if (x<0)
    y=0;
else 
    y=1;
end;
end
Так тоже не работает.
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
09.11.2014, 12:50
Лучший ответ Сообщение было отмечено TimkaTV как решение

Решение

Цитата Сообщение от TimkaTV Посмотреть сообщение
Так тоже не работает.
А что вы собственно изменили?
Matlab M
1
2
3
4
5
6
function R = f2n( x )
 
R(x<=0)=0;
R(x>0)=1;
 
end
2
0 / 0 / 0
Регистрация: 12.11.2013
Сообщений: 7
09.11.2014, 14:17  [ТС]
Как это сделать с помощью конструкции if-else ?
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
09.11.2014, 14:50
Лучший ответ Сообщение было отмечено TimkaTV как решение

Решение

Цитата Сообщение от TimkaTV Посмотреть сообщение
Как это сделать с помощью конструкции if-else ?
В цикле вот так:
Matlab M
1
2
3
4
5
6
7
8
9
10
function R = f2n( x )
 
for i=1:size(x,2)
if (x(i)<0)
    R(i)=0;
else 
    R(i)=1;
end;
 
end
P.S выделяйте ник,чтобы пришло уведомление об ответе.
2
 Аватар для nuHrBuH
483 / 427 / 205
Регистрация: 04.03.2011
Сообщений: 1,259
09.11.2014, 22:22
Цитата Сообщение от S_el Посмотреть сообщение
Matlab M
1
2
R(x<=0)=0;
R(x>0)=1;
А где можно почитать о подобных конструкциях в скобках? Как компьютер распознает, шо то не обращение к индексу?
0
 Аватар для tvoretsmira
462 / 452 / 56
Регистрация: 28.05.2013
Сообщений: 699
10.11.2014, 00:39
В скобках выполняется операция сравнения с массивом х. Результатом сравнения является логический массив в котором 0 (ложь) соотвествуют тем елементам массива x, для которых условие ложно; а 1 (правда) - тем елементам, для которых условие правильно. При индексировании с помощью логического массива 1 (правда) указывает на елемент(ы), которые используются.
2
 Аватар для nuHrBuH
483 / 427 / 205
Регистрация: 04.03.2011
Сообщений: 1,259
10.11.2014, 10:58
Спасибо.
Но почему теперь отдает 3 нуля? Создается специальная ячейка для чего-то?
Matlab M
1
2
x = [-1 2 -5 0 6];
y(x<0)=0
Добавлено через 2 минуты
Я понял. Но как компьютер узнает, шо дальше нет элементов, подходящих под условие? Или он просто не выводит те, после которых его нет?
Matlab M
1
2
x = [-1 2 -5 0 -1];
y(x<0)=1
Добавлено через 9 минут
А теперь традиционно работает. Из-за типа?
Matlab M
1
2
x = [2 6 1];
y(x)=1
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
10.11.2014, 11:04
Цитата Сообщение от nuHrBuH Посмотреть сообщение
Но как компьютер узнает, шо дальше нет элементов, подходящих под условие?
Проверяет,но не выделяет память.
Если я прав,то массив по-умолчанию инициализируется 0(как в C#),а затем обрабатывается значение индексов,с выполняющимся условием.
1
 Аватар для nuHrBuH
483 / 427 / 205
Регистрация: 04.03.2011
Сообщений: 1,259
10.11.2014, 11:34
Шо происходит?)
Matlab M
1
2
3
4
t = [2 4 7];
x = [2 4 1];
y(x)= t>0
       1     1     0     1
Добавлено через 20 минут
Вроде берет индексы иксовые, а закидует t>0
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
10.11.2014, 12:30
Цитата Сообщение от nuHrBuH Посмотреть сообщение
Вроде берет индексы иксовые, а закидует t>0
Здесь уже сложнее.
Matlab M
1
2
3
4
f=[2 2 2 4 10]
x = [2 4 1] % в роли индексов
t=[-1 2 5]
f(x)=t>0 % присваиваем элементу f с индексами из x 1,если t>0 и 0 если нет.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.11.2014, 12:30
Помогаю со студенческими работами здесь

создание функции в matlab
Создал функцию, сохранили её. function = may_diff(x0,xk,dx,e,dell) x=x0:dx:xk; if e==1 Er=randn(size(x))/dell; % рандомный...

Вычисление функции в MatLab
Доброго времени суток, сразу прошу прощения за глупый вопрос :) Нужно вычислить значения функции на отрезке в заданном числе N...

Тригонометрические функции в Matlab
Необходим список всех тригонометрических функций, выполняемых программой matlab, включая гиперболические, кто - нибудь может привести такой...

Вывод функции interp1 в Matlab
Доброго времени суток всем) Помогите вывести в MatLab функцию interp1 у самого не получается а найти где либо немогу( помогите...

Inline-функции Matlab + Delphi
Всех с наступающим!:drink: Кто-нибудь знает как передать inline функции параметры для подстановки в виде массива? Суть в том, чтобы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru