Всех кто интерисуется вейвлетами прошу сюда
» MathWorks MATLAB
dj=0.25;
dj0=0.6;
dj0steps=dj0/(dj*2);
kernel=[mod(dj0steps,1); ones(2 * round(dj0steps)-1,1); ...
mod(dj0steps,1)]./(2*round(dj0steps)-1+2*mod(dj0steps,1));
Помогите, пожалйста, расшифровать приведенный код.. Т.е. объясните что он значит. Это должно быть тривиально, но я не пишу под матлаб (перевожу алгоритм просто на другой язык ).
также возможно вы знаете чему соответствует вот это:
conv2(twave,kernel,'same');
в математике ? (соответствующая функция ListConvolve)
dj0=0.6;
dj0steps=dj0/(dj*2);
kernel=[mod(dj0steps,1); ones(2 * round(dj0steps)-1,1); ...
mod(dj0steps,1)]./(2*round(dj0steps)-1+2*mod(dj0steps,1));
Помогите, пожалйста, расшифровать приведенный код.. Т.е. объясните что он значит. Это должно быть тривиально, но я не пишу под матлаб (перевожу алгоритм просто на другой язык ).
также возможно вы знаете чему соответствует вот это:
conv2(twave,kernel,'same');
в математике ? (соответствующая функция ListConvolve)
Andrei_Latyshau
Первые 3 оператора, думаю, нет проблем.
Далее сначала создается вектор-столбец ([...;...;...]), размер зависит от dj0steps:
0.2 - остаток от деления (mod) dj0steps(0.2) на 1
1.0 - ones(1,1) создает матрицу из единиц размера 1х1, то есть просто число 1. Этих единиц может быть большо в зависимости от dj0steps.
0.2 - как и первое число
Затем каждый элемент этого вектора делится на результат выражения после ./ (1.4)
Точка здесь в принципе не обязательна, поскольку в знаменателе скалярная величина, а не матрица.
Результат - вектор
0.142857142857143
0.714285714285714
0.142857142857143
Документация к conv2:
http://www.mathworks.com/access/helpdesk/help/techdoc/ref/conv2.html
http://matlab.exponenta.ru/ml/book2/chapter8/conv2.php
Чему соответствует в Математика не знаю.
Первые 3 оператора, думаю, нет проблем.
Далее сначала создается вектор-столбец ([...;...;...]), размер зависит от dj0steps:
0.2 - остаток от деления (mod) dj0steps(0.2) на 1
1.0 - ones(1,1) создает матрицу из единиц размера 1х1, то есть просто число 1. Этих единиц может быть большо в зависимости от dj0steps.
0.2 - как и первое число
Затем каждый элемент этого вектора делится на результат выражения после ./ (1.4)
Точка здесь в принципе не обязательна, поскольку в знаменателе скалярная величина, а не матрица.
Результат - вектор
0.142857142857143
0.714285714285714
0.142857142857143
Документация к conv2:
http://www.mathworks.com/access/helpdesk/help/techdoc/ref/conv2.html
http://matlab.exponenta.ru/ml/book2/chapter8/conv2.php
Чему соответствует в Математика не знаю.
Задаю функцию в матлабе (в м.файле).
function res=test(n)
res=n*n
В матлабе функция работает.
Дальше в фемлабе 3.2 в меню Options->Functions создаю функцию с таким же именем как и в матлабе - test
argument: n
expression: test(n)
В Physics->Subdomain Settings-> Init задаю test(10)
Фемлаб все решает никаких ошибок не выдает только начальное условие берет не 100 как должно быть а 0...
Как передавать функцию из матлаба в фемлаб?
function res=test(n)
res=n*n
В матлабе функция работает.
Дальше в фемлабе 3.2 в меню Options->Functions создаю функцию с таким же именем как и в матлабе - test
argument: n
expression: test(n)
В Physics->Subdomain Settings-> Init задаю test(10)
Фемлаб все решает никаких ошибок не выдает только начальное условие берет не 100 как должно быть а 0...
Как передавать функцию из матлаба в фемлаб?
Yuk
Цитата:
Спасибо большое. Как это формируется я не доконца понял, но пожалуй мне подойдет и просто этот результат. Входные параметры у меня все равно фиксированы
Цитата:
Результат - вектор
0.142857142857143
0.714285714285714
0.142857142857143
Спасибо большое. Как это формируется я не доконца понял, но пожалуй мне подойдет и просто этот результат. Входные параметры у меня все равно фиксированы
Народ, я в матлабе полный ноль, тут в симулинке построил модель, даже работает, но появилась необходимость к этой модели сделать форму, на которой можно было бы задать исходные данные и после нажатия на кнопку увидеть результат. Подскажите как в матлабе создавать формы, если можно с примером кода, про хелп можете не говорить, я бы посмотрел но у меня матлаб глюкованый, хелп не работает.
0315
Используй GUIDE.
А помощь и онлайн имеется (если по-английски читаешь):
http://www.mathworks.com/access/helpdesk/help/techdoc/creating_guis/creating_guis.html
Используй GUIDE.
А помощь и онлайн имеется (если по-английски читаешь):
http://www.mathworks.com/access/helpdesk/help/techdoc/creating_guis/creating_guis.html
Есть специалисты по функции FILTER? А то я только знаю как с помощью нее локальное среднее считать (не лучший вариант кстати), но совершенно не врубаюсь как это работает. Очень хотелось бы разобраться. Может кто-нибудь понятными словами объяснить для не математика, или ссылочку бросить (можно по английски)?
Yuk
Цитата:
А разве в хелпе непонятно написано? Функция осуществляет фильтрацию. Если не хочется разбираться, что такое фильтрация, представь себе некоторую систему с параметрами a и b, на вход которой поступает сигнал x, а на выходе получается сигнал y. Формула, описывающая получение выходного сигнала, приводится в хелпе, в разделе Algorithm.
Цитата:
Может кто-нибудь понятными словами объяснить для не математика
А разве в хелпе непонятно написано? Функция осуществляет фильтрацию. Если не хочется разбираться, что такое фильтрация, представь себе некоторую систему с параметрами a и b, на вход которой поступает сигнал x, а на выходе получается сигнал y. Формула, описывающая получение выходного сигнала, приводится в хелпе, в разделе Algorithm.
MorSe
Извиняюсь, может я такой тупой, но ни фига там не понятно. Что такое filter order (n-1)? Что такое Z-1 в схеме? Откуда берутся z(1)...z(n-1)? Я понимаю, что из формулы, но какой физический смысл этих величин? В частности, какие они для примера в хелпе. Что изменится, если я введу zi?
Я действительно не занимаюсь обработкой сигналов. Но меня очень интересуют возможности применения этой функции.
Извиняюсь, может я такой тупой, но ни фига там не понятно. Что такое filter order (n-1)? Что такое Z-1 в схеме? Откуда берутся z(1)...z(n-1)? Я понимаю, что из формулы, но какой физический смысл этих величин? В частности, какие они для примера в хелпе. Что изменится, если я введу zi?
Я действительно не занимаюсь обработкой сигналов. Но меня очень интересуют возможности применения этой функции.
Yuk
Цитата:
Порядок фильтра.
Цитата:
Это так задержку в схеме обозначают.
Цитата:
Если имеются в виду элементы массива zi, то zi служит для задания начальных условий, инициализирует все элементы задержки фильтра (по умолчанию все элементы равны нулю). Задержка используется, в основном, тогда, когда фильтруем не весь сигнал целиком (в один приём), а по секциям, т.е. в цикле. Инициализация задержки фильтра для следующей секции (zi) возвращается в выходной переменной zf.
Цитата:
Что такое filter order (n-1)?
Порядок фильтра.
Цитата:
Что такое Z-1 в схеме?
Это так задержку в схеме обозначают.
Цитата:
Откуда берутся z(1)...z(n-1)?
Если имеются в виду элементы массива zi, то zi служит для задания начальных условий, инициализирует все элементы задержки фильтра (по умолчанию все элементы равны нулю). Задержка используется, в основном, тогда, когда фильтруем не весь сигнал целиком (в один приём), а по секциям, т.е. в цикле. Инициализация задержки фильтра для следующей секции (zi) возвращается в выходной переменной zf.
MorSe
Спасибо за ответы. Но вопросов все больше.
Цитата:
На русский перевести я могу без проблем, а что это означает? Например, какой порядок у фильтра в примере с локальным средним? 5?
Почему в примере b - вектор [1/5; 1/5; 1/5; 1/5; 1/5], a а - число 1, хотя в формулах алгоритма оба и a, и b упоминаются как a(n), b(n)?
y(m), x(m) - это вектор или число? А z1(m-1)?
Спасибо за ответы. Но вопросов все больше.
Цитата:
Порядок фильтра.
На русский перевести я могу без проблем, а что это означает? Например, какой порядок у фильтра в примере с локальным средним? 5?
Почему в примере b - вектор [1/5; 1/5; 1/5; 1/5; 1/5], a а - число 1, хотя в формулах алгоритма оба и a, и b упоминаются как a(n), b(n)?
y(m), x(m) - это вектор или число? А z1(m-1)?
Нашел книгу The Scientist and Engineer's Guide to Digital Signal Processing. Разбираюсь...
Кстати, а есть ли тема по DSP на ru-board? Нужна ли? Или можно вопросы здесь задавать?
Кстати, а есть ли тема по DSP на ru-board? Нужна ли? Или можно вопросы здесь задавать?
Yuk
А чем вот эта формула не нравится?
Код: y(n) = b(1)*x(n) + b(2)*x(n-1) + ... + b(nb+1)*x(n-nb)
- a(2)*y(n-1) - ... - a(na+1)*y(n-na)
А чем вот эта формула не нравится?
Код: y(n) = b(1)*x(n) + b(2)*x(n-1) + ... + b(nb+1)*x(n-nb)
- a(2)*y(n-1) - ... - a(na+1)*y(n-na)
MorSe
Спасибо, буду изучать.
Вот такой вопрос, на который я пока не нашел ответ (по крайней мере в первых главах). Если у меня неодинаковое расстояние между точками по оси х, могу ли я использовать методы DSP, или равномерность независимой переменной - обязательное требование? В каком-то приближении я, конечно, мог бы этим пренебречь, но не хотелось бы.
Спасибо, буду изучать.
Вот такой вопрос, на который я пока не нашел ответ (по крайней мере в первых главах). Если у меня неодинаковое расстояние между точками по оси х, могу ли я использовать методы DSP, или равномерность независимой переменной - обязательное требование? В каком-то приближении я, конечно, мог бы этим пренебречь, но не хотелось бы.
Вот такая задачка:
Вектор А содержит координаты точек в одномерном пространстве, около 50 000, может и больше.
Матрица В состоит из 2-х столбцов, определяющих координаты начала и конца отрезков в этом же пространстве, около 5 000 отрезков.
Известно, что ни один отрезок не содержит внутри себя точек из вектора А.
Сами отрезки могут как пересекаться, так и входить один в другой целиком.
Отрезки отсортированы по первому столбцу.
Задача - для каждого отрезка найти ближайшие точки из вектора А с обоих концов. То есть создать новую матрицу С, такого же размера, как В, с новыми координатами отрезков.
Естественно, исходя из условия, пересекающиеся отрезки будут иметь одинаковые точки.
Задачу надо решить в векторном формате, без циклов. Может кто-нибудь помочь раскинуть мозгами?
Вот простой пример:
A=[1 2 5 6 7 12 13 14 19 20]';
B=[3 4; 8 10; 9 11; 15 18; 16 17];
Ответ:
C=[2 5; 7 12; 7 12; 14 19; 14 19];
Вектор А содержит координаты точек в одномерном пространстве, около 50 000, может и больше.
Матрица В состоит из 2-х столбцов, определяющих координаты начала и конца отрезков в этом же пространстве, около 5 000 отрезков.
Известно, что ни один отрезок не содержит внутри себя точек из вектора А.
Сами отрезки могут как пересекаться, так и входить один в другой целиком.
Отрезки отсортированы по первому столбцу.
Задача - для каждого отрезка найти ближайшие точки из вектора А с обоих концов. То есть создать новую матрицу С, такого же размера, как В, с новыми координатами отрезков.
Естественно, исходя из условия, пересекающиеся отрезки будут иметь одинаковые точки.
Задачу надо решить в векторном формате, без циклов. Может кто-нибудь помочь раскинуть мозгами?
Вот простой пример:
A=[1 2 5 6 7 12 13 14 19 20]';
B=[3 4; 8 10; 9 11; 15 18; 16 17];
Ответ:
C=[2 5; 7 12; 7 12; 14 19; 14 19];
C = [interp1(A,A,B(:,1),'nearest') interp1(A,A,B(:,2),'nearest')]
DedPanas
Спасибо. Красиво. Я про interp1 даже не подумал.
Но работает не всегда правильно. Например, если
A=[1 10]'
B=[2 3]
C будет [1 1], а надо [1 10].
То есть мне надо, чтобы interp1 возвращало меньшее ближайшее и большее ближайшее значение из А.
Спасибо. Красиво. Я про interp1 даже не подумал.
Но работает не всегда правильно. Например, если
A=[1 10]'
B=[2 3]
C будет [1 1], а надо [1 10].
То есть мне надо, чтобы interp1 возвращало меньшее ближайшее и большее ближайшее значение из А.
Da, ne dodumal
[more=Ответ]
%% Data
A=[1 2 5 6 7 12 13 14 30]';
B=[3 4; 8 10; 9 11; 15 18; 16 17; 16 19];
%%
k=zeros(size(B));
k(:,1) = dsearchn(A,B(:,1));
k(:,2) = dsearchn(A,B(:,2));
C = A(k);
% in case of one segment
if size(C) - size(k)
C = C';
end
% corrections
C(C(:,1) > B(:,1) & k(:,1) > 1,1) = ...
A(k(C(:,1) > B(:,1) & k(:,1) > 1)-1);
C(C(:,2) < B(:,2) & k(:,1) < numel(A),2) = ...
A(k(C(:,2) < B(:,2) & k(:,2) < numel(A))+1);
[/more], кому интересно. Для порядку.
(Давно сделал, да выложить забыл.)
%% Data
A=[1 2 5 6 7 12 13 14 30]';
B=[3 4; 8 10; 9 11; 15 18; 16 17; 16 19];
%%
k=zeros(size(B));
k(:,1) = dsearchn(A,B(:,1));
k(:,2) = dsearchn(A,B(:,2));
C = A(k);
% in case of one segment
if size(C) - size(k)
C = C';
end
% corrections
C(C(:,1) > B(:,1) & k(:,1) > 1,1) = ...
A(k(C(:,1) > B(:,1) & k(:,1) > 1)-1);
C(C(:,2) < B(:,2) & k(:,1) < numel(A),2) = ...
A(k(C(:,2) < B(:,2) & k(:,2) < numel(A))+1);
[/more], кому интересно. Для порядку.
(Давно сделал, да выложить забыл.)
Никому не попадались файлы с описанием пакетов Матлаб в формате .pdf (старые версии) или .chm? Особенно интересует Нечеткая логика и Нейронные сети.
cogni
Цитата:
Могу посоветовать книгу: Дьяконов В., Круглов В. Математические пакеты расширения Matlab. Специальный справочник. Там как раз каждой из интересующих тебя тем отведено по отдельной главе.
Цитата:
Никому не попадались файлы с описанием пакетов Матлаб в формате .pdf (старые версии) или .chm? Особенно интересует Нечеткая логика и Нейронные сети.
Могу посоветовать книгу: Дьяконов В., Круглов В. Математические пакеты расширения Matlab. Специальный справочник. Там как раз каждой из интересующих тебя тем отведено по отдельной главе.
Работаю с Matlab недавно поэтому вопрос может из серии для чайников, но для меня важен.
Необходимо загрузить в Matlab кучу файлов (результаты измерений) ... как загрузить один понятно, но вот что мне не ясно это как загрузить все файлы из директории?
Необходимо загрузить в Matlab кучу файлов (результаты измерений) ... как загрузить один понятно, но вот что мне не ясно это как загрузить все файлы из директории?
smt
Цитата:
В цикле . Воспользуйся командой dir.
Цитата:
как загрузить один понятно, но вот что мне не ясно это как загрузить все файлы из директории?
В цикле . Воспользуйся командой dir.
В курсе что через цикл и используя команду DIR ... вот это именно не получается!
Если не сложно черкните листинг
Если не сложно черкните листинг
smt
Типа такого:
Код:
fdir = 'C:\TEMP\';
files = dir([fdir '*.txt']);
for i=1:numel(files)
disp([num2str(i) ' ' files(i).name])
end
Типа такого:
Код:
fdir = 'C:\TEMP\';
files = dir([fdir '*.txt']);
for i=1:numel(files)
disp([num2str(i) ' ' files(i).name])
end
Большое человеческое спасибо!
Проблема при попытке поставить на компьютер матлаб 7.1.
Начинаю установку, вбиваю ключ, он приниается, все нормально
потом выбираешь папку для установки
Комп спрашивает, мол такой папки нет, создать? жмешь ок. (папка создается, проверяла)
далее - выскакивает ошибка:
You must install matlab with your other products. Please select matlab
Что бы я не делала - бестолку.
Есть хоть какиенить идеи?!
Система: WinXp, SP2
Компьютер: AMD, 1.61 ГГц, 512 ОЗУ
Начинаю установку, вбиваю ключ, он приниается, все нормально
потом выбираешь папку для установки
Комп спрашивает, мол такой папки нет, создать? жмешь ок. (папка создается, проверяла)
далее - выскакивает ошибка:
You must install matlab with your other products. Please select matlab
Что бы я не делала - бестолку.
Есть хоть какиенить идеи?!
Система: WinXp, SP2
Компьютер: AMD, 1.61 ГГц, 512 ОЗУ
Подсажите плиз, как решить дифференциальное уравнение 2-ого порядка в матлабе?
Типа такого, к примеру - d2 i/ d t2 + (R* di) /L* dt) + i/ (L*c)= 0
, где R, L, c - константы : t - переменная времени , i -то что надо найти при решении (d - деффиренциал )
Типа такого, к примеру - d2 i/ d t2 + (R* di) /L* dt) + i/ (L*c)= 0
, где R, L, c - константы : t - переменная времени , i -то что надо найти при решении (d - деффиренциал )
Предыдущая тема: Переставить заново зарегенную прогу.
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.