Embedded Matlab function to save a random number

1 vue (au cours des 30 derniers jours)
Owen
Owen le 23 Oct 2012
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

Réponse acceptée

Kaustubha Govind
Kaustubha Govind le 23 Oct 2012
Modifié(e) : Kaustubha Govind le 23 Oct 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

Plus de réponses (1)

Owen
Owen le 24 Oct 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 commentaire
Kaustubha Govind
Kaustubha Govind le 24 Oct 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.

Connectez-vous pour commenter.

Tags

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by