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!