MATLAB Answers

How can I can I export a matrix to another function in Simulink?

7 ビュー (過去 30 日間)
Mariana
Mariana 2020 年 1 月 29 日
回答済み: Kavya Vuriti 2020 年 5 月 20 日
I am trying to save this matrix in an array.
Matrix : [1,2,3,4,5,6;7,8,9,10,11,12;13,14,15,16,17,18;19,20,21,22,23,24]
size = 1
Matlab function
function y = fcn(u, size)
l = length(u);
cycles = fix(l/size);
init = 1;
for i=1:cycles
data(i)= u(init:size,:);
init = size
size = size + 1;
end
y = data;
data(i) --> is an array with multiple cells of size 1 x 4
[cell 1x6] [cell 1x6] [cell 1x6] [cell 1x6]
[1,2,3,4,5,6] [7,8,9,10,11,12] [13,14,15,16,17,18] [19,20,21,22,23,24]
I want to set as output the first cell which is : [1,2,3,4,5,6]
How can I do this?

  0 件のコメント

サインインしてコメントする。

回答 (1 件)

Kavya Vuriti
Kavya Vuriti 2020 年 5 月 20 日
Fron the question, I understood that you are trying to convent a matrix of size 4x6 into cell array of size 1x4. From the given code, I understood that the variable "size" is used to specify the number of elements in each cell.If that is the case,value of size must be 6 according to your question. In the model, I think you are expecting the output of first matlab function block to be [1 2 3 4 5 6]. You could try the following code:
function y = fcn(u, size)
l = length(u);
cycles = fix(l/size);
data = cell(1, cycles);
for i=1:cycles
data{i}= u(i,:);
end
y = data{1};
This output of function block 'MATLAB Function' can be directly passed to the function block 'MATLAB Function 1'. Also, care must be taken in setting properties of the input and output ports of the function blocks in Model Explorer.

  0 件のコメント

サインインしてコメントする。

製品


リリース

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by