Как задать массив в матлабе
Перейти к содержимому

Как задать массив в матлабе

  • автор:

Матрицы и массивы

MATLAB является сокращением от «матричной лаборатории». В то время как другие языки программирования в основном работают с числами по одному, MATLAB® спроектирован, чтобы работать, в основном, с целыми матрицами и массивами.

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

Создание массивов

Чтобы создать массив из четырех элементов в одной строке, разделите элементы любым запятая ( , ) или пробел.

a = [1 2 3 4]
a = 1×4 1 2 3 4

Этот тип массива является вектором-строкой .

Чтобы создать матрицу, которая имеет несколько строк, разделите строки точками с запятой.

a = [1 3 5; 2 4 6; 7 8 10]
a = 3×3 1 3 5 2 4 6 7 8 10

Другой способ создать матрицу состоит в том, чтобы использовать функцию, такую как ones нули , или rand . Например, создайте вектор — столбец размером 5 на 1 из нулей.

z = zeros(5,1)
z = 5×1 0 0 0 0 0

Матричные операции и операции над массивами

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

a + 10
ans = 3×3 11 13 15 12 14 16 17 18 20
sin(a)
ans = 3×3 0.8415 0.1411 -0.9589 0.9093 -0.7568 -0.2794 0.6570 0.9894 -0.5440

Чтобы транспонировать матрицу, используйте одинарную кавычку ( ‘ ):

ans = 3×3 1 2 7 3 4 8 5 6 10

Можно выполнить стандартное умножение матриц, которое вычисляет скалярные произведения между строками и столбцами, с помощью * оператор. Например, подтвердите, что матрица, умноженная на её обратную матрицу, возвращает единичную матрицу:

p = a*inv(a)
p = 3×3 1.0000 0.0000 -0.0000 0 1.0000 -0.0000 0 0.0000 1.0000

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

format long p = a*inv(a)
p = 3×3 1.0000 0.0000 -0.0000 0 1.0000 -0.0000 0 0.0000 1.0000

Сбросьте отображение к более короткому формату используя

format short

format влияет только на отображение чисел, а не то, как MATLAB вычисляет или сохраняет их.

Чтобы выполнить поэлементное умножение, а не умножение матриц, используйте .* оператор:

p = a.*a
p = 3×3 1 9 25 4 16 36 49 64 100

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

ans = 3×3 1 27 125 8 64 216 343 512 1000

Конкатенация

Конкатенация является процессом слияния массивов для создания бОльших массивов. На самом деле вы сделали свой первый массив путем конкатенации его отдельных элементов. Пара квадратных скобок [] оператор конкатенации.

A = [a,a]
A = 3×6 1 3 5 1 3 5 2 4 6 2 4 6 7 8 10 7 8 10

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

A = [a; a]
A = 6×3 1 3 5 2 4 6 7 8 10 1 3 5 2 4 6 7 8 10

Комплексные числа

Комплексные числа имеют и действительные и мнимые части, где мнимая единица является квадратным корнем из -1 .

sqrt(-1)
ans = 0.0000 + 1.0000i

Чтобы представлять мнимую часть комплексных чисел, используйте любой i или j .

c = [3+4i, 4+3j; -i, 10j]
c = 2×2 complex 3.0000 + 4.0000i 4.0000 + 3.0000i 0.0000 - 1.0000i 0.0000 +10.0000i

Открытый пример

У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?

Документация MATLAB

Поддержка

  • MATLAB Answers
  • Помощь в установке
  • Отчеты об ошибках
  • Требования к продукту
  • Загрузка программного обеспечения

© 1994-2021 The MathWorks, Inc.

  • Условия использования
  • Патенты
  • Торговые марки
  • Список благодарностей

Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика

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

2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.

3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.

4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.

5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.

Создание массивов со случайными элементами MatLab

р = randperm(n) — возвращает случайные перестановки целых чисел 1:n в векторе-строке. Пример:

Функция rand генерирует массивы случайных чисел, значения элементов которых равномерно распределены в промежутке (0, 1):

rand(n) — возвращает матрицу размера nхn. Если n — не скаляр, то появится сообщение об ошибке;

rand(m.n) или rand([m п]) — возвращают матрицу размера mxn;

rand(m.n,p. ) или rand([m n р. ]) — возвращает многомерный массив;

rand(size(A)) — возвращает массив того же размера и размерности, что и А, с элементами, распределенными по равномерному закону;

rand (без аргументов) — возвращает одно случайное число, которое изменяется при каждом последующем вызове и имеет равномерный закон распределения;

rand(‘ state’) — возвращает вектор с 35 элементами, содержащий текущее состояние генератора случайных чисел с равномерным распределением. Для изменения состояния генератора можно применять следующие формы этой функции:

rand(‘state’ .s) — устанавливает состояние в s;

rand( ‘state’ ,0) — сбрасывает генератор в начальное состояние;

rand( ‘state’. j) — для целых j, устанавливает генератор в j-е состояние;

rand( ‘state’ ,sum(100*clock)) — каждый раз сбрасывает генератор в состояние, зависящее от времени.

0.9501 0.8913 0.8214

0.2311 0.7621 0.4447

0.6068 0.4565 0.6154

0.4860 0.0185 0.7919

Проверить равномерность распределения случайных чисел можно, построив большое число точек на плоскости со случайными координатами. Это делается с помощью следующих команд:

Полученный при этом график показан на рис. 10.1. Нетрудно заметить, что точки довольно равномерно распределены на плоскости, так что нет оснований не доверять заданному закону распределения координат точек.

Рис. 10.1. Случайные точки с равномерным распределением координат на плоскости

Функция randn генерирует массив со случайными элементами, распределенными по нормальному закону с нулевым математическим ожиданием и среднеквадратическим отклонением, равным 1:

randn(n) — возвращает матрицу размера nхn. Если n — не скаляр, то появится сообщение об ошибке;

randn(m.n) или randn([m n]) — возвращают матрицу размера mxn;

randn(m,n,p. ) или randn([m n р. ]) — возвращает массив с элементами, значения которых распределены по нормальному закону;

randn(size(A)) — возвращает массив того же размера, что и А, с элементами, распределенными по нормальному закону;

randn (без аргументов) — возвращает одно случайное число, которое изменяется при каждом последующем вызове и имеет нормальное распределение;

randn( ‘state’) — возвращает двухэлементный вектор, включающий текущее состояние нормального генератора. Для изменения состояния генератора можно применять следующие формы этой функции:

randn(‘state’,s) — устанавливает состояние в s;

randn(‘state’ ,0) — сбрасывает генератор в начальное состояние;

randn(‘state’, j) — для целых j устанавливает генератор в J-e состояние;

randn(‘state’, sum( 100*clock)) — каждый раз сбрасывает генератор в состояние, зависящее от времени.

-0.4326 -1.1465 0.3273

-1.6656 1.1909 0.1746

0.1253 1.1892 -0.1867

0.2877 -0.0376 0.7258

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

строят гистограмму (рис. 10.2) из 100 столбцов для 10 000 случайных чисел с нормальным распределением.

Рис. 10.2. Гистограмма для 10 000 нормально распределенных чисел в 100 интервалах

Из рисунка видно, что огибающая гистограммы действительно близка к нормальному закону распределения.

В пакете расширения Statistics Toolbox можно найти множество статистических функций, в том числе для генерации случайных чисел с различными законами распределения и определения их статистических характеристик.

Создание массива

Author24 — интернет-сервис помощи студентам

Дано VEC=[1 -3,1 9,8 0,1 -2] N=3
Сформировать новый массив NEW, получаемый из массива VEC накапливанием суммы: первый элемент массива NEW равен VEC(1), второй — VEC(1)+VEC(2) и тд.
Кроме элемента с номером N, который должен быть равен сумме всех положительных элементов массива VEC
Буду благодарен за помощь

Здесь вы можете заказать любую студенческую или школьную работу.

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Создание массива матрицы
Всем привет! В матлабе я не силен, но мне нужно создать массив матрицы u_na_um =.

Создание обратного массива матриц
Здравствуйте. Подскажите как задать массив матриц в таком случае. У меня имеется матрица и в.

Создание нового массива из 2-х заданных
нужно написать функцию чтобы из 2-х заданных одномерных массивов она сравнила числа поэлементно и.

Передача массива данных в Excel или создание двумерного динамического массива
Нашел на просторах вот такое: Dim oExcel As Object Dim oBook As Object Dim oSheet As.

52 / 47 / 19
Регистрация: 05.04.2015
Сообщений: 226

1 2 3 4 5 6 7 8 9 10 11 12 13
clc vec = [1 -3 1 9 8 0 1 -2]; N = 3; new_vec = zeros(1, length(vec)); new_vec(1) = vec(1); s = find(sign(vec) > 0); for i = 2:1:length(vec) if i == N new_vec(i) = sum(s); else new_vec(i) = sum(vec(1:i)); end end

как получить векторный массив выходных данных цикла for

Find the treasures in MATLAB Central and discover how the community can help you!

An Error Occurred

Unable to complete the action because of changes made to the page. Reload the page to see its updated state.

Select a Web Site

Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .

You can also select a web site from the following list

How to Get Best Site Performance

Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.

  • América Latina (Español)
  • Canada (English)
  • United States (English)
  • Belgium (English)
  • Denmark (English)
  • Deutschland (Deutsch)
  • España (Español)
  • Finland (English)
  • France (Français)
  • Ireland (English)
  • Italia (Italiano)
  • Luxembourg (English)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *