Elettracompany.com

Компьютерный справочник
16 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Matlab округление до целого

Арифметические операторы и функции MATLAB;

Help specfun

Выделение подматрицы с 2-й по 5-ю строки и с 3-го по 5-й столбец

Транспонирование вектора

Транспонирование не квадратной матрицы

Транспонирование квадратной матрицы

Выделить 1,2,3 столбцы, строки переставить в указанном порядке

Переставить строки в указанном порядке

Переставить столбцы в указанном порядке

M(5)

Переприсваивание элемента M(2,2)

Действия со строками и столбцами

По формуле.

Функция eye(n), eye(m,n) возвращает единичную матрицу nxn или mxn

Hist(Y,100)

Plot(X,Y)

M %вывод на экран

%2 способ

Matr=[1:7;11:17;21:27;31:37]

%3 способ

функция magic(n) задает магическую матрицу nxn все ее элементы не превышают n^2;

суммы всех элементов столбцов, строк, диагонали равны 34 (для n=4);

M1=magic(4)

%4 способ

функции создания массивов со случайными элементами rand: rand(n) rand(m,n)генерируют матрицу (nxn)или(mxn) с элементами, распределенными по равномерному закону в промежутке (0,1);

YR=rand(4,3)

проверить равномерность распределения случайных чисел можно, построив большое число точек со случайными координатами;

X=rand(1000,1);

Y=rand(1000,1);

функция randn(n), randn(mxn) генерируют матрицу nxn (mxn) с элементами, распределенными по нормальному закону с мат. Ожиданием = 0 и ср. кв. отклонением = 1;

YN=randn(4,3)

для проверки распределения построим гистограмму;

Y=randn(1000,1);

строится гистограмма из 100 столбцов для 1000 случайных чисел с нормальным законом распределения;

Y1=randn(4,3)*10 %все элементы умножаются на 10;

a=3; b=20; %интервал [a;b]

Y2=rand(4,3)*(b-a)+a
%генерируется матрица (4×3)с числами в интервале [20;3];

%5 способ

t=eye(3)

t2=eye(4,3)

%6 способ

функция ones(n), ones(m,n) возвращает матрицу nxn или mxn, все элементы которой единицы;

H=ones(3,4)

%7 способ

функция zeros(n), zeros(m,n) возвращает матрицу nxn или mxn, все элементы которой нули;

D=zeros(3,2)

%8 способ

M1=magic(4)

M(2,2)=10

Выражение M(i) дает доступ к элементам матрицы, развернутым в один столбец

A=[ -5 3 -2 -9 -1; 0 -1 2 4 3;2 3 7 6 2;1 5 -4 3 -4; 2 6 -5 -8 3]

B=A(:,[4,1,2,5,3])

B=A([2,5,1,4,3],:)

B=A([2,5,1,4,3],1:3)

M=[1 2 3 4;4 5 6 7;7 8 9 1;2 4 6 8]

MT=M’

M2=[1 2 3 4;4 5 6 7;7 8 9 1]

MT2=M2′

N=[1 4 3 6]

NT=N’

%выделение подматрицы:

B=magic(6)

B(1:2,:) %первые две строки, все столбцы;

B(1:2,:)=0 %обнулить первые две строки

Выделение столбцов со 2-го по 5-й, 6 строк:

C1=B(:,2:5)

C2=B(2:5,3:5)

Выделение подматрицы с 1-й по 3-ю строки и с 2-го по последний столбец;

C3=B(1:3,2:end)

%Удаление столбцов и строк матрицы

B=magic(5)

B(:,2)=[] %Удалим 2-й столбец

B(2,:)=[] %Удалим 2-ю строку

Помощь:

help elfun – вывести список всех элементарных математических функций.

help elmat – вывод более сложных математических и матричных функций.

Таблица 1. Арифметические операции

Основные математические функции MatLab

MatLab содержит в себе все распространенные математические функции, которые доступны по их имени при реализации алгоритмов. Например, функция sqrt() позволяет вычислять квадрат числа и может быть использована в программе следующим образом:

x = 2;
y = 4;
d = sqrt(x^2+y^2); %вычисление евклидового расстояния

Аналогичным образом вызываются и все другие математические функции, представленные в табл. 1.2.

Таблица 1.2. Основные математические функции MatLab

Почти все элементарные функции допускают вычисления и с комплексными аргументами. Например:

res = sin(2+3i)*atan(4i)/(1 — 6i); % res = -1.8009 — 1.9190i

Ниже показан пример задания вектора с именем a, и содержащий значения 1, 2, 3, 4:

a = [1 2 3 4]; % вектор-строка

Для доступа к тому или иному элементу вектора используется следующая конструкция языка:

disp( a(1) ); % отображение значения 1-го элемента вектора
disp( a(2) ); % отображение значения 2-го элемента вектора
disp( a(3) ); % отображение значения 3-го элемента вектора
disp( a(4) ); % отображение значения 4-го элемента вектора

т.е. нужно указать имя вектора и в круглых скобках написать номер индекса элемента, с которым предполагается работать. Например, для изменения значения 2-го элемента массива на 10 достаточно записать

a(2) = 10; % изменение значения 2-го элемента на 10

Часто возникает необходимость определения общего числа элементов в векторе, т.е. определения его размера. Это можно сделать, воспользовавшись функцией length() следующим образом:

N = length(a); % (N=4) число элементов массива а

Если требуется задать вектор-столбец, то это можно сделать так

a = [1; 2; 3; 4]; % вектор-столбец

b = [1 2 3 4]’; % вектор-столбец

при этом доступ к элементам векторов осуществляется также как и для векторов-строк.

Следует отметить, что векторы можно составлять не только из отдельных чисел или переменных, но и из векторов. Например, следующий фрагмент программы показывает, как можно создавать один вектор на основе другого:

a = [1 2 3 4]; % начальный вектор a = [1 2 3 4]
b = [a 5 6]; % второй вектор b = [1 2 3 4 5 6]

Здесь вектор b состоит из шести элементов и создан на основе вектора а. Используя этот прием, можно осуществлять увеличение размера векторов в процессе работы программы:

a = [a 5]; % увеличение вектора а на один элемент

Недостатком описанного способа задания (инициализации) векторов является сложность определения векторов больших размеров, состоящих, например, из 100 или 1000 элементов. Чтобы решить данную задачу, в MatLab существуют функции инициализации векторов нулями, единицами или случайными значениями:

Читать еще:  Http www iobit com appgoto php

a1 = zeros(1, 100); % вектор-строка, 100 элементов с
% нулевыми значениями
a2 = zeros(100, 1); % вектор-столбец, 100 элементов с
% нулевыми значениями
a3 = ones(1, 1000); % вектор-строка, 1000 элементов с
% единичными значениями
a4 = ones(1000, 1); % вектор-столбец, 1000 элементов с
% единичными значениями
a5 = rand(1000, 1); % вектор-столбец, 1000 элементов со
% случайными значениями

Матрицы в MatLab задаются аналогично векторам с той лишь разницей, что указываются обе размерности. Приведем пример инициализации единичной матрицы размером 3х3:

E = [1 0 0; 0 1 0; 0 01]; % единичная матрица 3х3

E = [1 0 0
0 1 0
0 0 1]; % единичная матрица 3х3

Аналогичным образом можно задавать любые другие матрицы, а также использовать приведенные выше функции zeros(), ones() и rand(), например:

A1 = zeros(10,10); % нулевая матрица 10х10 элементов

A2 = zeros(10); % нулевая матрица 10х10 элементов
A3 = ones(5); % матрица 5х5, состоящая из единиц
A4 = rand(100); % матрица 100х100, из случайных чисел

Для доступа к элементам матрицы применяется такой же синтаксис как и для векторов, но с указанием строки и столбца где находится требуемый элемент:

A = [1 2 3;4 5 6;7 8 9]; % матрица 3х3
disp( A(2,1) ); % вывод на экран элемента, стоящего во
% второй строке первого столбца, т.е. 4
disp( A(1,2) ); % вывод на экран элемента, стоящего в
% первой строке второго столбца, т.е. 2

Также возможны операции выделения указанной части матрицы, например:

B1 = A(:,1); % B1 = [1; 4; 7] – выделение первого столбца
B2 = A(2,:); % B2 = [1 2 3] – выделение первой строки
B3 = A(1:2,2:3); % B3 = [2 3; 5 6] – выделение первых двух
% строк и 2-го и 3-го столбцов матрицы А.

Размерность любой матрицы или вектора в MatLab можно определить с помощью функции size(), которая возвращает число строк и столбцов переменной, указанной в качестве аргумента:

a = 5; % переменная а
A = [1 2 3]; % вектор-строка
B = [1 2 3; 4 5 6]; % матрица 2х3
size(a) % 1х1
size(A) % 1х3
size(B) % 2х3

MATLAB круглая функция — как она округляет .5 вверх или вниз?

Как работает круглая функция MATLAB .5? Как 5.5? Округляется ли он до 6 или до 5? Страница Mathworks, рассказывающая об этой функции, ничего об этом не говорит, и пример тоже не помогает!

Вот страница mathworks для функции MATLAB round:

4 Ответов

round (X): округление до ближайшего целого числа, trailing 5 раундов до ближайшего целое число далеко от нуля . Например, round (2.5) возвращает 3; round(-2.5) отдача -3.

Немного больше информации об этой схеме (округление наполовину от нуля) и многих других содержится в статье о округлении .

пожалуйста, введите ‘ round(0.5)’ в matlab. более эффективно, чем писать здесь

Эта коллекция функций округления , доступная на MATLAB Exchange, также может представлять интерес. Он включает в себя M-files/code для нескольких методов округления, которые не включены в MATLAB, и pdf, иллюстрирующий их вместе со стандартными методами округления MATLAB.

Похожие вопросы:

функция round (numeric, integer) в PostgreSQL только округляет вверх: round(cast (41.0255 as numeric),3) ==> 41.026 Поскольку нам нужна круглая функция, которая возвращает 41.025, и (что весьма.

Я ищу функцию Java, которая округляется вверх или вниз, но обычно, например, от 3.2 до 3 и от 3.6 до 4. Есть куча ответов, но все они либо округляются исключительно вверх, либо округляются.

Я вычисляю число, которое использую в другом вычислении. проблема в том, что это число может быть 67.9699, я хочу, чтобы оно говорило 67.96, не округляя вверх или вниз, а просто сокращая другие.

Excel округляет числа непоследовательно, что вызывает у меня проблемы. При использовании функции ROUND() иногда она округляет определенное число вверх, а в других случаях-то же самое значение вниз.

Мне нужна функция округления C, которая округляет числа, такие как функция округления MATLAB. — А он есть? Если вы не знаете, как работает функция MATLAB round, см. Эту ссылку: MATLAB круглая.

Я хотел бы быть в состоянии округлить вверх или вниз 10.823. Ожидаемый результат: rounding down = 10.82 rounding up = 10.83 Зная, что round(10.823, 2) только округляет вниз. Как его округлить?

Помимо кодирования моей собственной, есть ли какая-либо встроенная функция Python, которая только округляет целые числа вниз? Я ищу что-то с аналогичной функцией для функции round() , но, скажем.

Я пытаюсь округлить одно значение до 8 символов после десятичной дроби, но это ничего не округляет. Например: 12/653.44 result: 0.018364348677767 Я хочу округлить и вывести 8 символов только после .

Когда я это сделаю circshift(image(k,:), [0 Naz/2-5]); Когда Naz/2-5 не является круглым числом, например 74.5 Что делает с ним Matlab? Я знаю, что неправильно предоставлять функцию с нецелым.

Читать еще:  Matlab русский язык

Я заметил, что метод formline в Perl 5 имеет какое-то странное действие. Если десятичное значение больше, чем 0.5,оно округлится. Если десятичное значение меньше 0.5, то оно округляется вниз. Но.

round

Round to nearest decimal or integer

Syntax

Description

Y = round( X ) rounds each element of X to the nearest integer. In the case of a tie, where an element has a fractional part of exactly 0.5 , the round function rounds away from zero to the integer with larger magnitude.

Y = round( X , N ) rounds to N digits:

N > 0 : round to N digits to the right of the decimal point.

N = 0 : round to the nearest integer.

N : round to N digits to the left of the decimal point.

Y = round( X , N , type ) specifies the type of rounding. Specify ‘significant’ to round to N significant digits (counted from the leftmost digit). In this case, N must be a positive integer.

Y = round( t ) rounds each element of the duration array t to the nearest number of seconds.

Y = round( t , unit ) rounds each element of t to the nearest number of the specified unit of time.

Examples

Round Matrix Elements

Round the elements of a 2-by-2 matrix to the nearest integer.

Round to Specified Number of Decimal Digits

Round pi to the nearest 3 decimal digits.

Round to Nearest Multiple of 100

Round the number 863178137 to the nearest multiple of 100.

Round Elements to Specified Number of Significant Digits

Round the elements of a vector to retain 2 significant digits.

Controlling Number Display While Rounding

The format command controls how MATLAB® displays numbers at the command line. If a number has extra digits that cannot be displayed in the current format, then MATLAB automatically rounds the number for display purposes. This can lead to unexpected results when combined with the round function.

Consider the result of the following subtraction operation, which displays 5 digits.

Based on the displayed value of x , rounding x to 1 decimal should return 2.1 .

In fact, the problem here is that MATLAB is rounding x to 5 digits for display purposes. The round function returns the correct answer. Confirm the answer by viewing x with format long , which displays x rounded to 15 digits.

Round Duration Values

Round each value in a duration array to the nearest number of seconds.

Round each value in t to the nearest number of hours.

Input Arguments

X — Input array
scalar | vector | matrix | multidimensional array

Input array, specified as a scalar, vector, matrix, or multidimensional array. For complex X , round treats the real and imaginary parts independently.

X must be single or double when you use round with more than one input.

round converts logical and char elements of X into double values.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | char | logical
Complex Number Support: Yes

N — Number of digits
scalar integer

Number of digits, specified as a scalar integer. When you specify N , the round function rounds X to the nearest multiple of 10 -N .

If you specify the ‘significant’ rounding type, then N must be a positive integer.

type — Rounding type
‘decimals’ (default) | ‘significant’

Rounding type, specified as ‘decimals’ or ‘significant’ . The rounding type determines whether round considers digits in relation to the decimal point or the overall number of significant digits. N must be a positive integer when you specify ‘significant’ . In that case, the round function rounds to the nearest number with N significant digits.

The default value is ‘decimals’ , so that round(X,N,’decimals’) is equivalent to round(X,N) .

Example: round(3132,2,’significant’) returns 3100 , which is the closest number to 3132 that has 2 significant digits.

Data Types: char | string

t — Input duration
duration array

Input duration, specified as a duration array.

unit — Unit of time
‘seconds’ (default) | ‘minutes’ | ‘hours’ | ‘days’ | ‘years’

Unit of time, specified as ‘seconds’ , ‘minutes’ , ‘hours’ , ‘days’ , or ‘years’ . A duration of 1 year is equal to exactly 365.2425 24-hour days.

Data Types: char | string

format short and format long both display rounded numbers. This can cause unexpected results when combined with the round function.

For display purposes, use sprintf to control the exact display of a number as a string. For example, to display exactly 2 decimal digits of pi (and no trailing zeros), use sprintf(‘%.2f’,pi) .

Compatibility Considerations

Rounding to specified number of digits

Behavior changed in R2014b

In R2014b, these syntaxes were added to round to any number of decimal or significant digits and to round duration values:

Читать еще:  Скалярное произведение matlab

Older versions of MATLAB ® support only this syntax, which rounds to the nearest integer:

Extended Capabilities

Tall Arrays
Calculate with arrays that have more rows than fit in memory.

This function fully supports tall arrays. For more information, see Tall Arrays.

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Usage notes and limitations:

Code generation supports only the syntax Y = round(X) .

Code generation does not support char or logical data types for X .

GPU Code Generation
Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.

Usage notes and limitations:

Code generation supports only the syntax Y = round(X) .

Code generation does not support char or logical data types for X .

GPU Arrays
Accelerate code by running on a graphics processing unit (GPU) using Parallel Computing Toolbox™.

Usage notes and limitations:

These syntaxes are not supported:

For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).

Distributed Arrays
Partition large arrays across the combined memory of your cluster using Parallel Computing Toolbox™.

This function fully supports distributed arrays. For more information, see Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).

See Also

Topics

Introduced before R2006a

Open Example

A modified version of this example exists on your system. Do you want to open this version instead?

Matlab округление до целого

Элементарные математические функции

В системе MATLAB присутствуют все основные элементарные функции: степенные, показательные, тригонометрические и обратные к ним. Любая функция характеризуется своим именем, списком входных аргументов (перечисляются через запятую и стоят внутри круглых скобок, следующих за именем функции) и вычисляемым (выходным) значением.

Сначала рассмотрим логическую функцию xor , дополняющую ранее рассмотренный набор логических операций. Эта функция имеет два входных аргумента и вычисляет над ними операцию «исключающее ИЛИ», которая вырабатывает единицу («истину») только в случае, когда один из числовых аргументов истинен (не равен нулю), а другой ложен (равен нулю). Например,

а если оба аргумента «истинны » или оба «ложны», то эта функция вырабатывает нуль:

Помимо операции возведения в степень, реализуемой с помощью знака ^ , есть ещё функция извлечения квадратного корня sqrt , функция exp для возведения в степень числа e , функция pow2 для возведения в степень числа 2 . Также присутствуют обратные к ним функции: log — натуральный логарифм, log10 — логарифм по сонованию10, log2 — логарифм по сонованию 2. В системе MATLAB можно быстро получить справочную информацию по любой элементорной функции, выполнив команду

Тригонометрические функции представлены весьма полно: sin , cos , tan (тангенс), cot (котангенс), asin (арктангенс), acos (арккосинус), atan (арктангенс), acot (арккотангенс). Имеются также и менее употребительные функции типа секанса, косеканса и т. д., а также гиперболические функции (являются комбинацией экспонент).

Для примера, вычислим выражение 2 * asin(1) , включающее вычисление функции asin , и получим следующий результат:

соответствующий числу ¶ . В системе MATLAB для числа ¶ есть специальное обозначение pi .

Упомянем ещё функции, связанные с целочисленной арифметикой. Например, функции округления: round (округление до ближайшего целого), fix (усечение дробной части числа), floor (округление до меньшего целого), ceil (округление до большего целого).

Кроме того, есть ещё функции mod (остаток от деления с учётом знака), rem (остаток в смысле модульной арифметики), sign (знак числа), factor (разложение числа на простые множители), isprime (истинно, если число простое), primes (формирование списка простых чисел), rat (приближение числа в виде рациональной дроби), lcm (наименьшее общее кратное), gcd (наибольший общий делитель).

Функции mod и rem дают одинаковый результат для положительных аргументов. В частности,

Но для операций с аргументами разных знаков они вырабатывают разные значения:

В общем случае эти функции связаны с функциями округления следующим образом:

И, наконец, есть функции, вычисляющие некоторые стандартные результаты из комбинаторики: функция perms вычисляет число перестановок, а функция nchoosek — число сочетаний. Например, число сочетаний из 10 по 3 легко находится вызовом функции:

Многие из перечисленных функций имеют область определения, отличную от множества всех действительных чисел R. В случаях, когда для функции задаётся недопустимое значение аргумента, или совершается попытка выполнить недопустимую операцию, мы получаем предупреждающее сообщение, например

Warning: Divide by zero.

при попытке деления на нуль. А в качестве результата выводится

где Inf символизирует бесконечность. Тот же результат получается при попытке вычислить логарифм от нуля.

Однако, чаще всего, при задании аргумента, выходящего за область определения функции действительного переменного (например, отрицательный аргумент для квадратного корня) система MATLAB автоматически выходит в область комплексных чисел, и вычисляет значение аналогичной комплексной функции.

Ссылка на основную публикацию
Adblock
detector