2015-01-29 3 views
2

У меня есть рабочее пространство под названием finalnet. Внутри рабочей области у меня есть нейронная сеть под названием net. и я хочу использовать сеть в одной из функций моего графического интерфейса.Использование переменных рабочей области в графическом интерфейсе Matlab

Есть ли способ сделать это?

Я пытался использовать Evalin функцию: network = evalin('finalnet','net')

, но я получаю эту ошибку:

Error using evalin Unknown command option.

+0

Я ничего не знаю о нейронных сетях, но вы могли бы попробовать использовать 'setappdata' и' getappdata' в своей сети? –

+0

@ Benoit_11 все, что я хочу, это позвонить в сеть в основном. – Alladin

ответ

3

Из формулировки вашей проблемы это звучит как finalnet это ранее сохраненное рабочее пространство таким образом, что finalnet.mat является расположенных в некоторых каталогах. Предположим, что текущий каталог.

В этом случае необходимо указать load рабочей области в свой графический интерфейс. Предполагая, что в какой-то случайной функции обратного вызова вы хотите позвонить load finalnet или load('finalnet.mat'). Теперь, когда рабочая область доступна локально для вашей функции обратного вызова, вы можете получить доступ к вашему net.

Если вы позвоните load finalnet, прежде чем запускать свой графический интерфейс, вам необходимо будет получить доступ к net, используя net = evalin('base','net') внутри вашей функции. Если вы внесете какие-либо изменения в net или другие переменные в базовое рабочее пространство, и вы хотите, чтобы эти изменения поддерживались даже после выхода из графического интерфейса, вы должны позвонить assignin('base','net') или какую бы переменную вы не изменили.

+0

Это полезно, не нужно ли загружать рабочее пространство каждый раз, когда функция вызывается в графическом интерфейсе? Есть ли способ загрузить рабочую область один раз, а затем использовать переменные в каждой из функций графического интерфейса? –

1

У вас здесь что-то не так. Насколько я знаю, есть только следующие типы Matlab рабочего пространства:

  1. Базовая рабочая область:
    • магазин переменные, созданные вами непосредственно из командного окна, или с помощью assignin('base', 'varname', value)
    • Вы можете получить доступ к переменным базового рабочего пространства из любой точки мира с var = evalin('base', 'varname'), или использовать их прямо из командного окна
  2. Функция рабочего пространства:
    • Каждая функция создает свое собственное рабочее пространство при его запуске. Он отделен базовым рабочим пространством. В этой функции, вы можете получить доступ к переменным базового рабочего пространства, как указано в пункте 1)
    • Там нет никакого способа, чтобы получить доступ к переменным функции рабочей области из командного окна, если вы не вызовите функцию
    • Если функция (предполагается test1) вызывает другую функция (предположительно test2), в пределах функции test2 вы можете получить доступ к переменной рабочего пространства test1 на var = evalin('caller', 'varname_in_test1_workspace'). Если вы хотите функцию test2 использовать переменные в рабочем пространстве test1 «s, передать их в качестве входных аргументов для test2
  3. Global рабочего пространства:
    • переменных Маркет, которые могут быть использованы (совместно) несколько рабочих пространствами.
    • Вы должны объявить их, используя global varname на всех рабочих пространствах, которые вы хотите использовать. (Т.е. в обеих функциях test1 и test2, с одной global varname команды, даже в командном окне (базовая рабочая область), если вы хотите получить доступ к переменной из командного окна)

Возвращаясь к вашему вопросу: Я считаю, не имеет возможности иметь рабочее пространство под названием finalnet в Matlab. У вас есть ошибка, потому что в Matlab нет такого рабочего стола finalnet. Вы можете ошибочно интерпретировать файл .mat, который вы получили, сохраняя в прошлом переменные рабочей области базы данных и самой рабочей области. Вероятно, вам сначала нужно загрузить файл .mat, переменные внутри будут загружены в базовую рабочую область Matlab, а затем вы сможете получить к ним доступ из своих функций по своему усмотрению.

 Смежные вопросы

  • Нет связанных вопросов^_^