matlab- все статьи тега
как отобразить / обновить черно-белое изображение с помощью функции " set " в MATLAB
Я делаю проект по обработке видео, в котором изображения обрабатываются, отображаются и обновляются с помощью кода ниже: hFigure=figure(1); set(hFigure,'Position', [50, 250, 400, 300]); IM1=getdata() % get frame from video object %initialise figure(1) handles=image(IM1); IM1=binarize(IM1); Loop %update frame IM1=getdata() % get frame from video object IM1=binarize(IM1); set(handles,'CData',IM1); end loop Выходное изображение будет синим и желтым, а не черно-белым. Онлайн- ...
Как ускорить этот вид for-loop?
Я хотел бы вычислить максимум переведенных изображений вдоль направления данной оси. Я знаю об этом.ordfilt2, однако я хотел бы избежать использования инструментов обработки изображений. Итак, вот код, который у меня есть до сих пор: imInput = imread('tire.tif'); n = 10; imMax = imInput(:, n:end); for i = 1:(n-1) imMax = max(imMax, imInput(:, i:end-(n-i))); end Можно ли избежать использования цикла for для ускорения вычислений, и если да, то как? Первое редактирование : использование ...
Как перевернуть блок Simulink вертикально?
Я пытался перевернуть блок в Simulink по вертикали, но не мог понять, как это можно сделать. Например, когда тригонометрический функциональный блок" sincos " вставлен, выход sin повышен, а выход cos понижен. Я хочу выходной, потому что и грех для меня будет приятнее. Я попытался повернуть его на 180 градусов, а затем перевернуть горизонтально, но это даже не сработало. Любое предложение ...
Векторизация в среде MATLAB для петли, чтобы манипулировать пикселей в режиме RGB
Я все еще учусь о MATLAB и я пытаюсь понять векторизации. Я думаю, что корень моей проблемы в том, что я не понимаю, как ссылаться на различные матрицы и тому подобное. Я надеюсь, что ответ на этот вопрос поможет мне понять. FI = imread(ForegroundImageName); BI = imread(BackgroundImageName); refRows =size(FI,1); refCols =size(FI,2); refChan =size(FI,3); CommonRGB = mode(mode(FI)); BI = imresize(BI, [refRows refCols]); swappedPixels = 0; for row=1:refRows for col=1:refCols if(FI(row ...
Построение неявной функции x+y-log(x) - log (y) -2 = 0 на MATLAB
Я хотел построить вышеупомянутую функцию на Matlab, поэтому я использовал следующий код ezplot('-log(x)-log(y)+x+y-2',[-10 10 -10 10]); Однако я просто получаю пустой экран. Но очевидно, что существует, по крайней мере, точка (1,1), которая удовлетворяет уравнению. Я не думаю, что есть проблема с настройками плоттера, так как я получаю графики для таких функций, как ezplot('-log(y)+x+y-2',[-10 10 -10 10]); У меня недостаточно репутации, чтобы вставлять картинки:) ...
Предотвращение агрессивного автоматического масштабирования в Matlab
Допустим, у меня есть следующий код Matlab: figure; a=plot(1:10); %A pause(); set(a,'ydata',1:2:20); %B pause(); set(a,'ydata',1:10); %C В точке (а) вертикальный диапазон моего графика равен [1,10]. В точке (B) вертикальный диапазон моего графика равен [0,20]. В точке с вертикальный диапазон снова равен [1,10]. Мне нравится, что график автоматически масштабируется от шага (а) до (Б). Мне не нравится автоматическое масштабирование от (B) до (C) - это заставляет вещи прыгать слишком много. ...
Нужна справка о классификаторе мультиклассовой для MATLAB
Мне нужно 2 функции matlab . Эти функции будут мультиклассовым классификатором . У меня 26 разных классов . каждый класс имеет 16 различных значений . у меня есть 20k строк данных в общей сложности . каждая строка имеет метку класса (целое число) и 16 различных значений, как я уже сказал . первые 16 K строк данных будут использованы для обучения . остальные 4K строк будут использоваться для оценки эффективности классификации. поэтому я буду использовать эту функцию 2 для классификации их и сравн ...
MATLAB, перемещение изображения
Мне нужно добавить два изображения к фигуре matlab и переместить их по заданным траекториям. но мое изображение загружается в полный размер, когда я изменяю его размер, он просто пикселизирует его, и он терпит неудачу, когда я пытаюсь переместить его. вот мой код: close all clc clear all fh = figure; bgh = uibuttongroup('Parent',fh,'Title',... 'John''s Animation','Position',[.1 .2 .8 .6]); set(bgh,'FontName','Trebuchet MS','FontSize',15) rbh1 = uicontrol(bgh,'Style','radiobutton','String' ...
Matlab: масштабные рисунки для публикации-точные размеры и размеры шрифта
В настоящее время я пишу научную диссертацию и очень отчаиваюсь в создании фигур, которые имеют точные размеры, которые я хочу, чтобы они имели. Особенно размеры шрифта не совпадают. Я уже много гуглил, и есть куча руководств и сценариев по этой теме, но ничего не помогло-я еще не понял (извините), почему мой подход не работает: FS=8; %font size in points (the same as in my document) width=12; %width of figure in cm height=4; %height of figure in cm scatter(1:20,rand(20,1)); xlabel('X','fontsi ...
Удаление элементов из массива ячеек в MATLAB
У меня есть массив ячеек, как показано ниже: a = {[1 2 3] [5 3 6] [9 1 3]}; Теперь я хочу удалить 1s из каждого массива в a, который содержит 1 , чтобы выход был таким, как показано a = {[2 3] [5 3 6] [9 3]}; Я знаю индексы массивов в ячейке array 'a', которые содержат 1. Это можно сделать с помощью цикла for и временной переменной, но это занимает много времени (я хочу выполнить операцию с массивом ячеек размером примерно 1x100000. Тот, что выше, просто для примера) Я хочу знать, есть ...
MATLAB: как найти площадь произвольной поверхности в двумерной замкнутой форме
У меня замкнутая двумерная поверхность, как показано ниже: r=1+0.1*sin(5*theta)+a*sin(6*theta); x=r.*cos(theta); y=r.*sin(theta); plot(x,y); Мне было интересно, какой самый эффективный способ найти его площадь? ...
Matlab: как сохранить анимированный сюжет в gif
Рассмотрим следующую функцию, которая рисует анимированный сюжет циклоида. function animate1() clear, clc R = 1; na = -pi/2; t = 0:0.05:6; v = 4; for i = 1:length(t) x0 = v*t(i); y0 = R; na = -v*t(i)/R; fi = linspace(na,na+2*pi,100); x = x0 + R*cos(fi); y = y0 + R*sin(fi); xc(i) = x0 + R*cos(na); yc(i) = y0 + R*sin(na); plot(x,y,'b',... xc(i),yc(i),'*m',... xc,yc, ...
Кросс-корреляция c++ и matlab
Я пытаюсь сделать перекрестную корреляцию в C++. Проблема в том, что я не получаю тот же результат в matlab. C++ код float telo[5] = {-1, 0, 1, 2, 3}; Mat prueba(1, 5, CV_32F, telo); float telo2[3] = { 0, 1, 2 }; Mat prueba2(1, 3, CV_32F, telo2); Mat result; matchTemplate(prueba, prueba2, result, CV_TM_CCORR); Result: 2048.0004882812500 2.660783784765e-314#DEN -6.2774385622041925e+066 Код Matlab: a = [-1,0,1,2,3] b = [0,1,2] xcorr2(a,b) Result: -2 -1 2 5 8 3 0 Что я делаю не так? ...
Как отсортировать строки многомерной матрицы в Matlab без изменения порядка элементов в первом столбце?
У меня есть трехмерная матрица A (i, j, k). Проблема заключается в следующем: У меня есть несколько комнат. Я использую первое измерение (i) для обозначения идентификаторов комнат. В каждой комнате есть несколько стульев. Я использую 2-е измерение (j) для обозначения идентификаторов стульев. Каждый стул имеет координаты x, y, z. я использую 3-е измерение (k) для обозначения координат. Например, A(4,3,1) обозначает 4-ю комнату, 3-й стул, координату x; A (4,3,2) обозначает ту же комнату и стул, ...
Векторизация для meshgrid в Matlab (или Octave)
Векторизованный код в Matlab работает намного быстрее, чем цикл for (см. параллельные вычисления в Октаве на одной машине-пакет и Пример для конкретных результатов в Октаве) С учетом сказанного, есть ли способ векторизации кода, показанного далее в Matlab или Octave? x = -2:0.01:2; y = -2:0.01:2; [xx,yy] = meshgrid(x,y); z = sin(xx.^2-yy.^2); ...
MATLAB: сравнение 2 массивов разной длины
У меня есть два массива разной длины (из-за разной частоты дискретизации), которые мне нужно сравнить. Я хотел бы уменьшить размер большего массива, чтобы он соответствовал меньшему по длине, однако коэффициент не является целым числом,а десятичным. Для примера: a = 1 1.375 1.75 2.125 2.5 2.875 3.25 b = 1 2 3 Существует ли какой-либо способ манипулировать этими массивами, чтобы они соответствовали длинам? ...
Обнаружение циклов в матрице смежности
Пусть A - матрица смежности для графа G = (V,E). A(i,j) = 1 если узлы i и j связаны ребром, A(i,j) = 0 в противном случае. Моя цель-понять, является ли Gациклическим или нет. Цикл определяется следующим образом: i и j связаны: A(i,j) = 1 j и k связаны: A(j,k) = 1 k и i связаны: A(k,i) = 1 Я реализовал решение, которое перемещается по матрице следующим образом: начните с ребра (i,j) выберите множество O ребер, исходящих из j, то есть все 1 в j-й строке A навигация O в режиме DFS ...
Неявное дифференцирование-вторая производная с использованием Matlab
Уравнение равно 4*x^2-2*y^2==9. Используя неявное дифференцирование, я могу найти, что вторая производная y по отношению к x является -9/y^3, что требует замены на заключительном шаге. Я пытаюсь воспроизвести этот ответ, используя символический инструментарий Matlab. Я нашел некоторую поддержку для первой производной здесь, и мне удалось найти первую производную. clear all syms x y f f=4*x^2-2*y^2-9 sol1=-diff(f,x)/diff(f,y) Но я не могу продолжать дальше, чтобы найти вторую производную с к ...
неопределенная переменная из ниоткуда
У меня есть приложение MALTAB с интерфейсом GUIDE, в функции OpeningFcn, которая выполняется до того, как GUI становится видимым, я определил такую глобальную переменную: global P1; P1 = []; Тогда у меня есть функция таймера, выполняющаяся каждые 2 секунды, в самом начале этой функции: handles=guidata(hObj); global P1; После этого функция двух строк производит некоторые вычисления, используя переменную P1. все работало нормально в течение нескольких часов, а затем внезапно мне пришло это ...
Нахождение фазы каждой гармоники с помощью БПФ
Я использую Matlab. У меня есть синусоидальный сигнал: X (amp: 220 / Freq:50) К которому я добавляю 3 гармоники: X1 = > (h2) amp: 30 / Freq: 100 / фаза:30° X2 = > (h4) amp: 10 / Freq: 200 / фаза:50° X3 = > (h6) amp: 05 / Freq: 300 / фаза:90° Я суммирую все сигналы вместе (например, X, содержащий 3 гармоники), результирующий сигнал называется: Xt Вот код : %% Original signal X = 220.*sin(2 .* pi .* 50 .* t); %% Harmonics x1 = 30.*sin(2 .* pi .* 100 .* t + 30); x2 = 10.*sin( ...