Unexpected MATLAB operator ':' In Simulink MATLAB Function Block
13 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Walter Roberson
il 9 Lug 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.)
Risposte (1)
akanksha srivastav
il 6 Set 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 Commenti
Vedere anche
Categorie
Scopri di più su Simulink Functions in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!