Каков синтаксис объявления глобального 2-мерного массива в MATLAB? - PullRequest
1 голос
/ 30 марта 2012

Каков синтаксис объявления глобального двумерного массива в MATLAB?

Я хочу, чтобы массив был пустым или неинициализированным.То есть я хочу иметь возможность инициализировать его до некоторого значения позже, используя цикл for.Все примеры, с которыми я сталкивался до сих пор, состоят из инициализации массива, когда он объявлен.Я нахожу это довольно утомительным, потому что мой массив может быть большим.

Спасибо.

1 Ответ

1 голос
/ 30 марта 2012

Сначала объявите переменную как глобальную:

global my_glob_var;

MATLAB на самом деле не поддерживает концепцию «неинициализированных» переменных, но вы можете создать массив NaN (не число), чтобы указать, что каждое значение еще не было назначено. Аргументы функции nan указывают размер массива NaN, который вы хотите создать:

my_glob_var = nan(200, 200)

Существуют и другие подобные функции, если вы хотите инициализировать массивы нулей, единиц, Inf и т. Д.

Затем внутри функций, в которых вы хотите его использовать, снова объявите его как глобальный:

function my_function

global my_glob_var  % allows this function to use the global variable
my_glob_var         % outputs the variable to command 

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...