Unexpected MATLAB operator ':' In Simulink MATLAB Function Block
13 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I am building a Simulink block diagram that uses a MATLAB Function block. I've run an exact copy of the function in MATLAB, so I know all the syntax and structure (loops and if statements & paired ends, brackets) is correct. However, when I try to build the Simulink model I get the following error:
![SimulinkError.PNG](https://www.mathworks.com/matlabcentral/answers/uploaded_files/227904/SimulinkError.png)
The line in question is shown below and is intended to find the number of unique values in the first column of 'deck'.
nAlt = length(unique(deck(:,1)));
Again I know it works when I run it in MATLAB, so I am assuming it is a problem with Simulink's C coder. I am having a similar index-related error on a later line: ![SimulinkError.PNG](https://www.mathworks.com/matlabcentral/answers/uploaded_files/227905/SimulinkError.png)
![SimulinkError.PNG](https://www.mathworks.com/matlabcentral/answers/uploaded_files/227905/SimulinkError.png)
Machs = sort([deck(1,2),Mach,deck(end,2)]);
Is there a way to get around this sort of error? I would really prefer not to mess around with different ways to do these operations, since I feel like the colon and end operators are pretty basic MATLAB syntax and would surely be supported for C code generation. Please let me know if you come up with a solution or need to see the full code.
3 Kommentare
Walter Roberson
am 9 Jul. 2019
In Simulink it can be important not to change data type of a variable.
input = fopen('some_text_file','r');
deckcell = textscan(input,'%f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f','HeaderLines',1, 'collectoutput', 1);
fclose(input);
deck = deckcell{1};
There is a possibility that you might first have to use coder.varsize to define deck as 1 x 17 (with the 1 signalling that the actual dimension is variable.)
Antworten (1)
akanksha srivastav
am 6 Sep. 2023
I also faced same error in simulink-
received_signal_1=[zeros(round(target_delay*Fs),numAntennas);repmat(ref_signal(:),1,numAntennas)];
for this matlab_line it shows unexpected error.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1474486/image.png)
0 Kommentare
Siehe auch
Kategorien
Mehr zu Simulink Functions finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!