2015-03-12 6 views
2

Чем больше термины обобщены? Почему MATLAB называется матричной лабораторией?В чем разница между матрицей и массивом?

+0

Не является матрицей многомерной. Как в этом 2D-массив? – m0meni

+4

В вычислениях, когда я слышу «массив», я думаю об общей [структуре данных] (http://en.wikipedia.org/wiki/Array_data_structure). И для меня [матрица] (http://en.wikipedia.org/wiki/Matrix_%28mathematics%29) - это особый вид массива, который подчиняется определенным правилам сложения, умножения, преобразования и т. Д. В MATLAB, as против Javascript или PHP, я склонен использовать их синонимом. – TroyHaskin

+0

Я думаю, массив более обобщен. Часто матрица определяется как 2D-массив. 1D часто называют векторами, а массивы с более чем двумя измерениями - тензорами –

ответ

5

Если вы спрашиваете о MATLAB, слово «матрица» обычно ссылается на 2d-массив, тогда как «массив» может быть n-мерным.

Ранние версии MATLAB поддерживают только 2d матрицы, а не n-мерные массивы. Я считаю, что поддержка n-мерных массивов была представлена ​​в версии 5 MATLAB.

+0

Я начал с Matlab в версии 4 и I 'm также довольно уверен, что у него не было n-мерных массивов –

6

Матрица представляет собой практический способ представляет собой линейное преобразование из пространства размерности п в пространство размерности м в виде NXM массива скалярных значений.

Также очень практично выполнять операции линейной алгебры очень систематическим образом, которые могут быть реализованы на компьютере. Например, если матрица представляет собой линейное преобразование е и матрица B линейное преобразование г, то композиция е о г пишет A * B, где * обозначает умножение матриц. Matlab имеет также много процедур, связанных с матричных операций (т.е. линейной алгебры операций), как det, pinv, svd и т.д ...

Как вы можете видеть, в настоящее время в Matlab, операторы как *, / сильно привязаны к матричным операциям и, таким образом, сильно привязаны к операциям линейной алгебры, что, по моему мнению, было первоначальной целью Matlab в его ранней разработке, отсюда и его название (безусловно, довольно спекулятивное, но догадаться не так далеко от реальности).

Для выполнения элементарных операций над n-мерными наборами данных вам необходимо написать .* или ./. теперь вы выполняете операции массива.

Я бы не сказал, операции массива охватывала матричные операции, они разные. Более поздние относятся к линейной алгебре, а другие относятся только к практическому способу работы с большими наборами данных. Эти данные не ограничиваются числами, это всего лишь n-мерные наборы данных любого (строка, числа, ячейки и т. Д.).

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

+0

Я думаю, что это хорошо поставлено и проницательно. Название MATLAB получило название ** ** ** ** ** ** ** **, но оно «... оптимизировано для операций с матрицами и векторами». http://www.mathworks.com/help/matlab/matlab_prog/vectorization.html –

0

Я бы сказал, что матрица MATLABs представляет собой более продвинутый вид массива, если вы сравниваете массивы c-стиля, например double array[], или массив Java, например double arry2[]. Я бы также сказал, что матрица Matlab лучше для математических целей, чем вектор C++ или Java ArrayList. Однако, если вы имеете в виду массив Matlab, я бы сказал, что это сложнее. Затем я бы рекомендовал ссылку о matlab data, которая описывает тип mxArray, используемый для хранения большей части данных в Matlab.Вопрос трудно ответить полностью без лучшего описания того, что вы имеете в виду с массивом, но я бы сказал, что в отношении типа нет разницы между массивом, например a = [1,2,3,4], и матрицей, подобной b = [1,2,3,4;5,6,7,8]. Могут быть также матрицы более высоких размеров, такие как c = ones(3,4,3). Они, как правило, называются также матрицами в MATLAB, или если вам нужно быть более конкретными N-мерными матрицами.

Смежные вопросы