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)
Criou página com '== Diretamente do terminal do MATLAB == == Bloco com parâmetros =='
 
Rogerio.j (discussão | contribs)
Linha 2: Linha 2:


== Bloco com parâmetros ==
== Bloco com parâmetros ==
<syntaxhighlight lang=matlab>
function parametros
persistent postloadFlag;
if isempty(postloadFlag)
    postloadFlag = true;
else
    if postloadFlag
        postloadFlag = false;ip
        return
    end
end
settingsBlock = [bdroot '/parametros1'];
[symbol_rate] = getSettings(settingsBlock,'symbol_rate');
[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.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;
%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
</syntaxhighlight>

Edição das 15h23min 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 '/parametros1'];
[symbol_rate] = getSettings(settingsBlock,'symbol_rate');
[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.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;

 
%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