Я попытался написать функцию Matlab в Simulink. Мой первый FUNC так:Функция Matlab как блок Simulink
function y = fcn(u, v)
coder.extrinsic('detectSURFFeatures');
boxPoints = detectSURFFeatures(u);
%scenePoints = detectSURFFeatures(v);
vBoxPoints = boxPoints.selectStrongest(100);
y = 0;
y = vBoxPoints;
Но я вижу ошибки: 1. Попытка извлечь поле 'selectStrongest' от 'mxArray'. 2.Установленная функция или переменная 'vBoxPoints'. Первое присваивание локальной переменной определяет ее класс. 3. Ошибка в ширинах или размерах портов. Выходной порт 1 функции 'detecting_cross/MATLAB Function/v' является матрицей [400x239]. Pls, помощь.
Hi. Хорошо, я бы попробовал: 'function y = fcn (u) coder.extrinsic (' detectSURFFeatures ',' rgb2gray '); boxPoints = struct ('selectStrongest', нули (100,1)); img = нули (150, 200, 'uint8'); img (:) = rgb2gray (u); boxPoints = detectSURFFeatures (img); y = нули (100, 1); y = boxPoints.selectStrongest (100); ' Но это не сработало. –
Я дал эту строку, которая создает пример структуры. Вы должны сделать это таким образом, чтобы соответствовать вашей структуре. Что означает «не работает»? – Navan
Получите ошибку: MATLAB выражение 'detectSURFFeatures' не соответствует классу: expected 'struct', найденный 'SURFPoints'. Блокировать функцию MATLAB (# 25) При выполнении: нет –