Документация
X = Inf возвращает скалярное представление положительной бесконечности. Inf следует из операций что возвращаемые значения, слишком большие, чтобы представлять как числа с плавающей запятой, такие как 1/0 или log(0) .
Для с двойной точностью Inf представляет числа, больше, чем realmax . Для с одинарной точностью Inf представляет числа, больше, чем realmax(‘single’) .
X = Inf( n ) возвращает n -by- n матрица значений Inf .
X = Inf( sz1. szN ) возвращает sz1 . -by- szN массивом значений Inf , где sz1. szN указывает на размер каждой размерности. Например, Inf(3,4) возвращает матрицу 3 на 4.
X = Inf( sz ) возвращает массив значений Inf , где вектор размера sz задает size(X) . Например, Inf([3 4]) возвращает матрицу 3 на 4.
X = Inf( ___ , typename ) возвращает массив значений Inf типа данных typename , который может быть или ‘single’ или ‘double’ .
X = Inf( ___ ,’like’, p ) возвращает массив значений Inf как p ; то есть, совпадающего типа данных, разреженности и сложности (действительный или комплексный) как p . Можно задать typename или ‘like’ , но не обоих.
Примеры
Матрица значений Inf
Создайте 3х3 матрицу значений Inf .
X = Inf(3)
X = 3×3 Inf Inf Inf Inf Inf Inf Inf Inf Inf
Трехмерный массив значений Inf
Создайте 2 массивом 3 на 4 значений Inf .
X = Inf(2,3,4); size(X)
ans = 1×3 2 3 4
Клонирование размера от существующего массива
Создайте массив значений Inf , который одного размера как существующий массив.
A = [1 4; 2 5; 3 6]; sz = size(A); X = Inf(sz)
X = 3×2 Inf Inf Inf Inf Inf Inf
Это — общий шаблон, чтобы объединить предыдущие две строки кода в одну строку:
X = Inf(size(A));
Задайте тип данных значений Inf
Создайте 1 3 вектор значений Inf , элементы которых имеют тип single .
X = Inf(1,3,'single')
X = 1x3 single row vector Inf Inf Inf
Можно также задать выходной тип на основе типа другой переменной. Создайте переменную p типа single . Затем создайте вектор значений Inf с тем же размером и типом как p .
p = single([1 2 3]); X = Inf(size(p),'like',p)
X = 1x3 single row vector Inf Inf Inf
Входные параметры
n Размер квадратной матрицы
целое число
Размер квадратной матрицы, заданной как целое число.
- Если n 0, то X является пустой матрицей.
- Если n отрицательно, это эквивалентно n = 0.
Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
sz1. szN — Размер каждой размерности в списке
целые числа
Размер каждой размерности в списке, заданном как отдельные целочисленные аргументы.
- Если размер какой-либо размерности 0, то X является пустым массивом.
- Если размер какой-либо размерности отрицателен, то это обработано как 0.
- После второго измерения Inf игнорирует последующие измерения длины 1. Например, Inf(3,1,1) создает вектор 3 на 1 значений Inf .
Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
sz — Размер каждой размерности в векторе
вектор — строка из целых чисел
Размер каждой размерности в векторе, заданном как вектор — строка из целых чисел.
- Если размер какой-либо размерности 0, то X является пустым массивом.
- Если размер какой-либо размерности отрицателен, то это обработано как 0.
- После второго измерения Inf игнорирует последующие измерения длины 1. Например, Inf([3 1]) создает вектор 3 на 1 значений Inf .
Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
typename — Тип данных
‘double’ (значение по умолчанию) | single’
Тип данных, чтобы создать, заданный как ‘double’ или ‘single’ .
p Прототип массива
массив
Прототип создаваемого массива, заданный как массив.
Типы данных: double | single
Поддержка комплексного числа: Да
Расширенные возможности
Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.
Указания и ограничения по применению:
- Размерности должны быть действительными, неотрицательными, целые числа.
Массивы графического процессора
Ускорьте код путем работы графического процессора (GPU) с помощью Parallel Computing Toolbox™.
Указания и ограничения по применению:
- Смотрите Inf в документации Parallel Computing Toolbox™.
Распределенные массивы
Большие массивы раздела через объединенную память о вашем кластере с помощью Parallel Computing Toolbox™.
Указания и ограничения по применению:
- Смотрите Inf в документации Parallel Computing Toolbox.
Смотрите также
Представлено до R2006a
Документация MATLAB
Поддержка
- MATLAB Answers
- Помощь в установке
- Отчеты об ошибках
- Требования к продукту
- Загрузка программного обеспечения
© 1994-2019 The MathWorks, Inc.
- Условия использования
- Патенты
- Торговые марки
- Список благодарностей
Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.
Почему результат выводится inf?
Добрый день! Рассчитыва арифметическое выражение — сумму ряда с факториалом.. Если задаю сумму ряда длиной до 6, то все работает, если длину ряда задаю n = 6, то в консоли выскакивает вместо результата inf.
Подскажите, пожалуйста, в чем может быть проблема?
пс. факториал считается правильно.. проверяла. проблема именно в сумме ряда.
using namespace std; int factorial (int n); int main() < double sum = 0.0; int n, x; cout > n; cout > x; for (int i = 1; i cout int factorial(int n) < if (n >1) < return n * (factorial(n - 1)); >else < return 1; >>
- Вопрос задан более трёх лет назад
- 19670 просмотров
Комментировать
Решения вопроса 0
Ответы на вопрос 2
пс. факториал считается правильно.. проверяла. проблема именно в сумме ряда.
Проверьте еще раз, например на таком примере: factorial(36)
Вспомним, что факториал — число большое, а в int влезает не так много. А что у нас там является результатом знакового переполнения в C++, напомните?
Ответ написан более трёх лет назад
Нравится 3 8 комментариев
Мария @missbells Автор вопроса
точно))) вылазит деление на 0 из-за этого факториала, по ходу.. спасибо за подсказку!
Мария, Переведите расчет факториала на int64_t — увеличите диапазон, но, конечно всему есть предел. Так что надо опытным путем установить на каком n он наступит и ввести соответствующее ограничение.
Мария @missbells Автор вопроса
res2001, большое спасибо!! даже не знала, что такой тип данных есть.. а то пробовала long и тоже не работало. Но и int64_t при n=9 уже все ломается ))) больше, я так понимаю, уже не бывает?
Мария, Встроенных типов больше нет. Если нужно больше то придется использовать какие-либо библиотеки для работы с большими числами.
int64_t — это long long int
Мария @missbells Автор вопроса
Мария, а вот кстати если задать double factorial(), то вообще выдает факториал любого числа. просто с экспонентой )))
если задать double factorial(), то вообще выдает факториал любого числа.
Только неправильный.
double при переполнении теряет точность.
Мария @missbells Автор вопроса
terrier, а как тогда быть?
Мария, Ну, смотря, что вы хотите сделать. Если вас устроит, что максимальный факториал, который вы можете вычислить своей программой — это 20! , то используйте unsigned long long. Если же вам нужно вычислять бОльшие факториалы, то вам нужна некая реализация длинной арифметики. Например, GMP популярная библиотека для C/C++ . Ни или что-то такое
Программист на «си с крестами» и не только
У нас тут переполнение, 36! не влезает в тип int. Сделайте хотя бы double.
Inf («машинная бесконечность») — обычно результат дробного деления на ноль. Почему? Посчитаем, сколько двоек в 36!
Делятся на 2 — 18 сомножителей.
И ещё на 4 — 9 шт.
И ещё на 8 — 4 шт.
И ещё на 16 — 2 шт.
И ещё на 32 — 1 шт.
Итого в составе 36! будет 34 двойки, то есть 36! делится на 2 34 . Разумеется, целочисленная арифметика, работающая в кольце остатков от деления на 2 32 , даст ноль. При этом, разумеется, 32-битный регистр многократно и безнадёжно переполнится.
Более сложный способ расчёта ряда — рекуррентное соотношение. Очередное слагаемое поделим на две части: ai = (2i)! / i²! и bi = |x| / i²!. Постройте, как соотносятся ai−1 и ai, аналогично для b.
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос
Войдите, чтобы написать ответ
- C++
- +2 ещё
Какие есть методы сборки кода на игровых движках? Какой лучше для примитивного 2d вроде vn генератора?
- 2 подписчика
- 3 часа назад
- 46 просмотров
Что такое inf?
Вопрос может очень глупый, но я только учусь. Подскажете пожалуйста, умные люди, что такое inf в C++?
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?
Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?
Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?
Что такое хэндлер файла? Что такое файловый указатель?
Что такое хэндлер файла? Что такое файловый указатель?
Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из них
Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из.
El. Psy. Congroo.
110 / 92 / 32
Регистрация: 09.01.2018
Сообщений: 344
Добавлено через 3 минуты
целочисленный тип данных, если это так.
Документация
X = Inf возвращает скалярное представление положительной бесконечности. Операции возвращают Inf когда их результат является слишком большим, чтобы представлять как число с плавающей точкой, такое как 1/0 или log(0) .
Для с двойной точностью, Inf представляет числа, больше, чем realmax . Для с одинарной точностью, Inf представляет числа, больше, чем realmax(‘single’) .
X = Inf( n ) возвращает n — n матрица Inf значения.
X = Inf( sz1. szN ) возвращает sz1 -. -by- szN массив Inf значения, где sz1. szN укажите на размер каждой размерности. Например, Inf(3,4) возвращает матрицу 3 на 4.
X = Inf( sz ) возвращает массив Inf значения, где вектор размера sz задает size(X) . Например, Inf([3 4]) возвращает матрицу 3 на 4.
X = Inf( ___ , typename ) возвращает массив Inf значения типа данных typename , который может быть любой ‘single’ или ‘double’ .
X = Inf( ___ ,’like’, p ) возвращает массив Inf значения совпадающего типа данных, разреженности и сложности (действительный или комплексный) как p . Можно задать typename или ‘like’ , но не то и другое одновременно.
Примеры
Матрица Inf Значения
Создайте 3х3 матрицу Inf значения.
X = Inf(3)
X = 3×3 Inf Inf Inf Inf Inf Inf Inf Inf Inf
Трехмерный массив Inf Значения
Создайте массив 2 на 3 на 4 Inf значения и отображение его размер.
X = Inf(2,3,4); size(X)
ans = 1×3 2 3 4
Клонирование размера от существующего массива
Создайте массив Inf значения, который одного размера с существующим массивом.
A = [1 4; 2 5; 3 6]; sz = size(A); X = Inf(sz)
X = 3×2 Inf Inf Inf Inf Inf Inf
Это — общий шаблон, чтобы объединить предыдущие две строки кода в одну строку.
X = Inf(size(A));
Задайте тип данных Inf Значения
Создайте 1 3 вектор из Inf значения, элементы которых имеют тип single .
X = Inf(1,3,'single')
X = 1x3 single row vector Inf Inf Inf
Можно также задать выходной тип на основе типа другой переменной. Создайте переменную p из типа single . Затем создайте вектор из Inf значения с тем же размером и типом как p .
p = single([1 2 3]); X = Inf(size(p),'like',p)
X = 1x3 single row vector Inf Inf Inf
Входные параметры
n — Размер квадратной матрицы
целое число
Размер квадратной матрицы в виде целого числа.
- Если n 0, затем X пустая матрица.
- Если n отрицательно, затем это обработано как 0.
Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
sz1. szN — Размер каждой размерности в списке
целые числа
Размер каждой размерности в списке в виде отдельных целочисленных аргументов.
- Если размер какой-либо размерности 0, то X пустой массив.
- Если размер какой-либо размерности отрицателен, то это обработано как 0.
- После второго измерения, Inf игнорирует последующие измерения длины 1. Например, Inf(3,1,1) создает вектор 3 на 1 из Inf значения.
Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
sz — Размер каждой размерности в векторе
вектор-строка из целых чисел
Размер каждой размерности в векторе в виде вектора-строки из целых чисел.
- Если размер какой-либо размерности 0, то X пустой массив.
- Если размер какой-либо размерности отрицателен, то это обработано как 0.
- После второго измерения, Inf игнорирует последующие измерения длины 1. Например, Inf([3 1]) создает вектор 3 на 1 из Inf значения.
Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
typename тип данных
‘double’ (значение по умолчанию) | single’
Тип данных, чтобы создать в виде ‘double’ или ‘single’ .
p — Прототип массива
массив
Прототип создаваемого массива в виде массива.
Типы данных: double | single
Поддержка комплексного числа: Да
Расширенные возможности
Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.
Указания и ограничения по применению:
- Размерности должны быть действительными, неотрицательными, целые числа.
Основанная на потоке среда
Запустите код в фоновом режиме с помощью MATLAB® backgroundPool или ускорьте код с Parallel Computing Toolbox™ ThreadPool .
Эта функция полностью поддерживает основанные на потоке среды. Для получения дополнительной информации смотрите функции MATLAB Запуска в Основанной на потоке Среде.
Массивы графического процессора
Ускорьте код путем работы графического процессора (GPU) с помощью Parallel Computing Toolbox™.
Указания и ограничения по применению:
- Можно задать typename как ‘gpuArray’ . Если вы задаете typename как ‘gpuArray’ , типом лежания в основе значения по умолчанию массива является double . Создать массив графического процессора с базовым типом datatype , задайте базовый тип в качестве дополнительного аргумента перед typename . Например, X = Inf(3,datatype,’gpuArray’) создает 3х3 массив графического процессора всего Inf значения с базовым типом datatype . Можно задать базовый тип datatype как одна из этих опций:
- ‘double’
- ‘single’
Для получения дополнительной информации смотрите функции MATLAB Запуска на графическом процессоре (Parallel Computing Toolbox) .
Распределенные массивы
Большие массивы раздела через объединенную память о вашем кластере с помощью Parallel Computing Toolbox™.
Указания и ограничения по применению:
- Можно задать typename как ‘codistributed’ или ‘distributed’ . Если вы задаете typename как ‘codistributed’ или ‘distributed’ , типом лежания в основе значения по умолчанию возвращенного массива является double . Создать распределенный или codistributed массив с базовым типом datatype , задайте базовый тип в качестве дополнительного аргумента перед typename . Например, X = Inf(3,datatype,’distributed’) создает 3х3 распределенный массив всего Inf значения с базовым типом datatype . Можно задать базовый тип datatype как одна из этих опций:
- ‘double’
- ‘single’
Для получения дополнительной информации смотрите функции MATLAB Запуска с Распределенными Массивами (Parallel Computing Toolbox) .
Смотрите также
Представлено до R2006a
Открытый пример
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Документация MATLAB
Поддержка
- MATLAB Answers
- Помощь в установке
- Отчеты об ошибках
- Требования к продукту
- Загрузка программного обеспечения
© 1994-2021 The MathWorks, Inc.
- Условия использования
- Патенты
- Торговые марки
- Список благодарностей
Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.