Поддерживает ли MATLAB вложенные области переменных?

Может ли MATLAB определять переменные, например, следующий псевдо-C-подобный код?

{  
    int a = 0;
    int b, c;
    {
       int a = 42; 
       b = a;
    }
    c = a;
}

Мы могли бы использовать вложенные функции, чтобы «симулировать» это. Можем ли мы сделать это без использования функций?

Я спросил это, потому что есть некоторый код на C, который я хотел преобразовать в MATLAB Мне было интересно, как преобразовать объявления вложенных переменных в MATLAB.

Спасибо,

 beaker13 июл. 2016 г., 19:10
Единственный способ, которым я знаю, чтобы сделать это с помощью вложенных функций, это передатьa в качестве параметра для вложенной функции. В противном случае он будет использовать родительскийa.
 beaker13 июл. 2016 г., 19:07
Можете ли вы сделать это с помощью вложенных функций?
 excaza13 июл. 2016 г., 18:59
Я не понимаю цель.
 Joe C13 июл. 2016 г., 19:24
Я обновил вопрос, чтобы объяснить, почему я хотел это сделать. Передача в качестве параметров не будет работать. В C внутренний a будет затенять внешний a. Я думаю, мне нужно переименовать внутренний a, чтобы сделать эту работу, иначе внешний a перезаписывается в MATLAB.

Ответы на вопрос(1)

Решение Вопроса

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

{  
    int a = 0;
    int b, c;
    {
       int a = 42; 
       b = a;
    }
    c = a;
}

станет (в MATLAB):

a = 0;
d = 42;
b = d;
c = a;

Если "внутренний"a и "внешний"a Если вы делаете разные вещи, вы не причините вреда, дав им разные имена, и, возможно, даже спасете кого-то от ночного кошмара обслуживания в дальнейшем.

 Mad Physicist13 июл. 2016 г., 20:23
Хех. Самый простой ответ «Нет», который я когда-либо делал.

Ваш ответ на вопрос