Dica para trabalhar com variáveis no Simulink: mudanças entre as edições

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Rogerio.j (discussão | contribs)
Rogerio.j (discussão | contribs)
Linha 17: Linha 17:
end
end


settingsBlock = [bdroot '/parametros1'];
settingsBlock = [bdroot '/parametros'];
[symbol_rate] = getSettings(settingsBlock,'symbol_rate');
[symbol_rate] = getSettings(settingsBlock,'symbol_rate');
[M_ary] = getSettings(settingsBlock,'M_ary');
[M_ary] = getSettings(settingsBlock,'M_ary');
[snr] = getSettings(settingsBlock,'snr');
[Ebno] = getSettings(settingsBlock,'Ebno');
[input_signal] = getSettings(settingsBlock,'inputSignal');
[F_sep] = getSettings(settingsBlock,'F_sep');
[aps] = getSettings(settingsBlock,'aps');




p.symbol_rate = symbol_rate;
p.symbol_rate = symbol_rate;
p.M = M_ary;
p.M = M_ary;
p.k = log2(M_ary);
p.snr = snr;
p.Ebno = Ebno;
p.Esno = Ebno + 10*log10(p.k);
p.input_signal = input_signal;
p.F_sep = F_sep;
p.aps = aps;


   
   
Linha 44: Linha 29:
  assignin('base', 'p', p);
  assignin('base', 'p', p);


 
function varargout = getSettings(settingsBlock, varargin)
 
function varargout = getSettings(settingsBlock, varargin)


  varargout = cell(size(varargin));
  varargout = cell(size(varargin));

Edição das 15h24min de 30 de novembro de 2015

1 Diretamente do terminal do MATLAB

2 Bloco com parâmetros

function parametros


persistent postloadFlag;
if isempty(postloadFlag)
    postloadFlag = true;
else
    if postloadFlag
        postloadFlag = false;ip
        return
    end
end

settingsBlock = [bdroot '/parametros'];
[symbol_rate] = getSettings(settingsBlock,'symbol_rate');
[M_ary] = getSettings(settingsBlock,'M_ary');


p.symbol_rate = symbol_rate;
p.M = M_ary;

 
%Assign variables to base workspace
 assignin('base', 'p', p);

function varargout = getSettings(settingsBlock, varargin)

 varargout = cell(size(varargin));

 h = get_param(settingsBlock, 'handle');
 for n = 1:length(varargin)
     varargout{n} = evalin('base', get(h, varargin{n}));
 end