Идея массива C в Matlab

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

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

4 ответа

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

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

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

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

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

>> array = zeros(1,5)

array =

     0     0     0     0     0

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

>> array(3) = 3

array =

     0     0     3     0     0

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

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

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

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

x = 1:10;
x[2]

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

 x[2]
 |
Error: Unbalanced or unexpected parenthesis or bracket.

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

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

Другие вопросы по тегам