开发者

Can't output multidimensional matrix in Matlab function in Simulink

For example I have function that creates matrix 2x2 : [1 2; 3 4] I have开发者_如何转开发 such simple function:

function[result] = Rho(x)
// I've tried and so:
result = [1 2; 3 4];
// And so:
result(1,1) = 1;
result(1,2) = 2;
result(2,1) = 3;
result(2,2) = 4;

In Matlab window i see right result:

>> Rho(1)
ans =
     1     2
     3     4

But in Simulink I always get [1;2;3;4]. Where is my mistake?

Can't output multidimensional matrix in Matlab function in Simulink

P.S. I forgot to remove argument x of function, because in real function I make matrix depending on argument x. But it doesn't play role in our example


The problem you are having is likely due to the parameter settings for your MATLAB Function block (now called an Interpreted MATLAB Function block in newer versions). Take a look at the Parameters Dialog Box for that block:

Can't output multidimensional matrix in Matlab function in Simulink

Note that you will want to set the Output dimensions to 2 and uncheck the Collapse 2-D results to 1-D check box. If this is left checked, then your 2-by-2 matrix will be turned into a 1-D array by extracting values along each column from left to right, which ends up being [1 3 2 4] in your example.

Once you apply the above changes, then all you should have to do is resize your Display block so that it shows your 2 rows and 2 columns.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜