Embedded Matlab function to save a random number
1 次查看(过去 30 天)
显示 更早的评论
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
0 个评论
采纳的回答
Kaustubha Govind
2012-10-23
编辑:Kaustubha Govind
2012-10-23
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
0 个评论
更多回答(1 个)
Owen
2012-10-24
1 个评论
Kaustubha Govind
2012-10-24
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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Sources 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!