Mudanças entre as edições de "Dica para trabalhar com variáveis no Simulink"
Ir para navegação
Ir para pesquisar
(Criou página com '== Diretamente do terminal do MATLAB == == Bloco com parâmetros ==') |
|||
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
Diretamente do terminal do MATLAB
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