2012-01-09 2 views
0

Можно ли применить идею массива в C к MATLAB Например, если у нас есть Двойной массив [10]; , и если мы хотим присвоить значение, напишем, например, Array [5] = 2;Идея массива C в matlab

Есть ли способ написать эквивалент в MATLAB?

+0

Пусть два downvoters объясниться? –

+0

@ Andrey: Я предполагаю, что это потому, что вопрос не очень ясен. Что именно о индексе C-стиля интересует OP? – Nzbuu

+0

Я имею в виду, как инициализировать массив и назначать определенное значение элементу в этом массиве в mathlab, как то, что мы делаем в C. Я думаю, что Крис понял, что я имел в виду.Спасибо за каждого, дал мне его ответ или его мнение. – Fatimah

ответ

2

Я не уверен, что вы подразумеваете под «Возможно ли применить идею массива в C к MATLAB». Массив - это всего лишь 1-й список чисел (или других типов данных). MATLAB в первую очередь предназначен для работы с матрицами (MATLAB - сокращение от Matrix laborartory), а массив или вектор - это просто частный случай матрицы. Поэтому я думаю, что ответ на ваш вопрос - да, если я правильно понял.

Для инициализации массивов или матрицы в MATLAB мы используем zeros или ones:

>> array = zeros(1,5) 

array = 

    0  0  0  0  0 

мы можем индексировать элементы массива таким же образом, как C:

>> array(3) = 3 

array = 

    0  0  3  0  0 

Заметим, однако, что индексирование массива MATLAB основано на одном, тогда как массивы C основаны на нуле.

This В статье описывается индексация матрицы/массива в MATLAB.

+0

Я думаю, что он имел в виду синтаксис. –

2

Вы можете определить свой собственный класс, переопределить оператор [].
Я описал механизм в Here
Поскольку это настраиваемая функция, вы можете также изменить индексирование на основе 1 на индексирование на основе 0.

Что касается конструктора, я сомневаюсь, что вы можете это сделать.

Во всяком случае, для чего вы хотите это сделать?
Вы будете путать всех пользователей Matlab и вызвать хаос.
Когда в Риме делайте, как римляне.

0

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

Первый элемент массива C имеет индекс нуля. то есть в X = [10 20 30 40], x [0] вернет 10. Но в MATLAB это даст ошибку. Чтобы получить доступ к номеру 10, вы должны использовать выражение x [1] в MATLAB.

+4

'x [2]' дает 'Ошибка: несбалансированные или неожиданные скобки или скобки.' – Nzbuu

0

Оператор индексирования []. Вы должны использовать () для индексации массива.

Если вы пишете

x = 1:10; 
x[2] 

, то вы получите следующее сообщение об ошибке

x[2] 
| 
Error: Unbalanced or unexpected parenthesis or bracket. 
Смежные вопросы