2016-10-29 5 views
-1

Скажите, что вам нужно сохранить имя всех локальных переменных в скрипте: local = union(who,"local"). Есть ли функция, чтобы заменить имя («local») ссылкой на переменную, которая находится слева от выражения?Как самостоятельно ссылаться на переменную влево в привязке в GNU Octave?

Обновление: Для ясности предложение будет переписано как local = union(who, leftside()), где функция leftside возвращает local.

Есть ли какая-то функция leftside() с этим поведением?

+0

Есть ли причина, по которой вы не можете просто использовать код, который у вас есть в своем вопросе? – stephematician

+0

Нет никакой конкретной причины использовать его, но он создает зависимость, с которой я бы хотел поехать. Также потому, что мне нравятся такие метаинструкции, которые Октав оборудован. – nightcod3r

+0

Я не знаю никакой такой функции leftside(). Документация по оператору присваивания (=) также не дает понимания. – stephematician

ответ

0

Вы имеете в виду это?

>> a = "test" 
a = test 
>> b = "rest " 
b = rest 
>> a = union(b, a) 
a = erst 
>> help union 
'union' is a function from the file C:\Octave\Octave-4.0.3\share\octave\4.0 
.3\m\set\union.m 

-- Function File: C = union (A, B) 
-- Function File: C = union (A, B, "rows") 
-- Function File: [C, IA, IB] = union (...) 

Return the unique elements that are in either A or B sorted in 
ascending order. 

Update:

Я не знаю такой функции. Есть множество встроенных функций для внутреннего использования, которые имеют имена, такие как __func_name__, и вы можете получить их список, если вы введете __ в командном окне Octave и дважды нажмите вкладку. С первого взгляда я не думаю, что есть функция, подобная той, которая вам нужна, но посмотрите, если хотите.

Можете ли вы описать, почему вам нужно такое поведение, может быть, существует другой подход, который может удовлетворить ваши потребности. Существуют функции для программного создания переменных - genvarname.

+0

Очевидно, я был недостаточно конкретным. Вопрос обновлен на примере. – nightcod3r