Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/34: Рейтинг темы: голосов - 34, средняя оценка - 4.91
79 / 34 / 6
Регистрация: 11.11.2010
Сообщений: 496

Создание функции с неизвестным числом переменных

05.11.2012, 12:09. Показов 6508. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Требуется создать функцию в которую передается два обязательных параметра, а количество других параметров может меняться от 2 до 10. Например:

example( x1, x2, y1, y2, y3, y4)

Вопрос в следующем - как задать n параметров при создании функции и как определить сколько y - параметров было передано?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.11.2012, 12:09
Ответы с готовыми решениями:

Ошибка при написании функции с неизвестным числом параметров
Ругается на va_start не могу понять за что) #include<iostream> #include<cstring> using namespace std; char*foo(int n, ...); ...

Циклы с неизвестным числом повторений
Помогите с задачкой пожалуйста y=1+(1+x)+\frac{(1+x{)}^{2}}{2!}+\frac{(1+x{)}^{3}}{3!}+...

Циклы с неизвестным числом повторений
сумма членов ряда: \prod = s = 4(1-1/3+...+{(-1)}^{n}*(1/(2n+1))+...) точность E: 10-4

5
 Аватар для Зосима
5245 / 3573 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
05.11.2012, 12:18
Тебе поможет ф-ция nargin
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function Z = example(x1, x2, y1, y2, y3, y4); 
if nargin < 2 % нехватает обязательных параметров
     disp('Ну, я так не играю! :( ')
elseif nargin < 3
     y1 = 0; y2=1; y3 = pi/4; y4 = 3 - i*4; % занчения по умолчанию
elseif nargin < 4
     y2=1; y3 = pi/4; y4 = 3 - i*4;
elseif nargin < 5
     y3 = pi/4; y4 = 3 - i*4;
elseif nargin < 6
     y4 = 3 - i*4;
end
 
Z = y1*sin(pi*y2) - exp(y3)/y4;
Уловил идею?
1
 Аватар для Зосима
5245 / 3573 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
16.11.2012, 21:05
А еще, когда кол-во входных пареметров совсем не известно, можно использовать ф-цию varargin (я сегодня только узнал ):
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
function z = myfun(varargin)
z = 0;
n = nargin; % число входных параметров
if n==0 % если нет входных данных
    return
end
for i = 1:n
    x = varargin{i};
    z = z + sum(x(:)); % чтото считаем
end
z = z/n; % чтото считаем
end
Здесь входные данные хранятся в массиве ячеек varargin (т.о. они могут быть разных размерностей и типов), а вытаскиваются они так как записано в строке 8, при помощи фигурных скобок.
1
0 / 0 / 1
Регистрация: 01.09.2012
Сообщений: 97
18.11.2012, 10:49
Когда я запустил последний код он мне выдал это: function with unknown number of variables2
|
Error: Missing operator, comma, or semicolon.
0
 Аватар для Зосима
5245 / 3573 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
18.11.2012, 17:33
Цитата Сообщение от arman22 Посмотреть сообщение
Когда я запустил последний код он мне выдал это: function with unknown number of variables2
|
Error: Missing operator, comma, or semicolon.
Дружочек! Это файл-функция! :) Запомни: ее запускать не надо! ее нужно сохранить под именем myfun.m в одной папочке с программой и вызывать ее из этой прогаммы, подставляя нужные входные данные! :) Вот так работают файл-функции (которые начинаются словом function).
1
0 / 0 / 1
Регистрация: 01.09.2012
Сообщений: 97
19.11.2012, 11:28
Спасибо! Я как раз начинаю осваивать matlab.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.11.2012, 11:28
Помогаю со студенческими работами здесь

Циклы с неизвестным числом повторений
Здравствуйте, помогите пожалуйста мне решить данную задачу. Иль хоть дайте совет как её делать, так как я даже не знаю, с чего начать. ...

Функция с неизвестным числом параметров
Public Function stroka(index) мне нужно чтобы когда я вызывал функцию так =stroka() то не вылетала ошибка что требуется ввести...

Циклы с неизвестным числом повторений
• ОПЕРАТОР ЦИКЛА while … do По заданной формуле члена ряда с номером k составить программу вычисления суммы всех членов ряда, не...

«Циклы с неизвестным числом повторений»
Сколько натуральных чисел, кратных 5,нужно перемножить, чтобы полученное произведение превысило 5^12?

Циклы с неизвестным числом повторений
Вычислить значение суммы членов бесконечного ряда с заданной точностью E с использованием оператора цикла с предусловием или с предусловием...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
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-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru