Embedded Matlab function to save a random number

4 visualizzazioni (ultimi 30 giorni)
Hi,
I want to write an Embedded Matlab function to store the ramdom number of the Random Generator block into a vector, something like 'To Workspace' block.
The code is following: function fcn(u) eml.extrinsic('assignin'); eml.extrinsic('evalin'); % index initialization persistent index; if isempty(index) index = 0; end;
% every time a new index
index = index + 1;
% save the variables in workspace
assignin('caller', 'a', u);
assignin('caller', 'b', uint16(index));
evalin('caller', 'c(uint16(b)) = a');
The variable 'c' is defined in a function which runs the 'sim()' command. c = zeros(1000, 1);
There is an error: In an assignment A(I) = B, the number of elements in B and I must be the same.
which relates to this line:
evalin('caller', 'c(uint16(b)) = a');
Could anybody help me to solve this problem?
Thanks Senmeis

Risposta accettata

Kaustubha Govind
Kaustubha Govind il 23 Ott 2012
Modificato: Kaustubha Govind il 23 Ott 2012
Is 'u' a non-scalar value? If yes, this is expected. For example:
>> c(uint16(4)) = [0 0]
In an assignment A(I) = B, the number of elements in B and I must be the same.
If you plan to assign a vector to create a 2-D matrix C, you should probably use the colon operator:
>> c(uint16(4),:) = [1 2]
c =
0 0
0 0
0 0
1 2

Più risposte (1)

Owen
Owen il 24 Ott 2012
The problem is solved. The error is because the Random Number Generator block generates frame based data. A Buffer block of length 1 is inserted and everything becomes OK.
Are there any other blocks that convert nx1 vectors to 1x1 vectors besides Buffer block?
Thanks Senmeis
  1 Commento
Kaustubha Govind
Kaustubha Govind il 24 Ott 2012
Does the "Random Number Generator" block have a dialog setting to change it from frame-based data to sample-based data? That might be the right thing to do here.

Accedi per commentare.

Categorie

Scopri di più su General Applications in Help Center e File Exchange

Tag

Prodotti

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by