1 / 1 / 1
Регистрация: 25.11.2014
Сообщений: 38
1

Добавьте возможность выполнять расчеты как для вектор-столбца, так и для вектор-строки

28.04.2015, 17:48. Показов 931. Ответов 1
Метки нет (Все метки)

Модифицировать программу:
1. Добавьте возможность выполнять расчеты как для вектор-столбца, так и для вектор-строки
2. Заменить вызовы функций GeneralMinSquare и GetPoly вызовами стандартных функций polyfit и polyval
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
function [F2,Ns]=MFDFAOneStep(Y,S,ORDER)
% Мультифрактальний DFA (MF-DFA) за статтею
% "Multifractal detrended fluctuation analysis of nonstationary time series"
% ДОПОМІЖНА ФУНКЦІЯ
% Обчислює значення F^2(s,nu) (кроки 2 та 3 статті)
% Аргументи:
%   Y     - вектор профілю
%   S     - ширина вікна
%   ORDER - степінь поліному, що описує тренд
% Результати:
%   F2    - вектор значень функції F^2(s,nu)
%   Ns    - кількість вікон вказаної ширини
% Обмеження:
%   1) вектор Y повинен мати 1 рядок
 
% визначаємо кількість елементів вектора профілю
[m,n]=size(Y);
% визначаємо кількість вікон, що поміщаються на векторі не перекриваючись
Ns=floor(n/S);
% виділяємо пам"ять для вектора F, що міститиме значень 2*Ns
F2=zeros(1,Ns);
 
                    %YPolyG=Y; %%%%%
                    %TEMPG=Y;  %%%%%
 
% КРОК 2-3
% проходимо по вікнам зліва-направо. Формула (2)
windowBegin=1; windowEnd=S; index=1;
XtStart=[1:S];
while (windowEnd<=n)
    Xt=[windowBegin:windowEnd];
    Yt=Y(1,Xt);
    % у поточному вікні знаходимо тренд порядку ORDER
    A=GeneralMinSquare(XtStart,Yt,ORDER);
    % знаходимо точки тренду
    YPoly=GetPoly(A,XtStart);
                    %YPolyG(1,Xt)=YPoly; %%%%%
    % знаходимо квадрати відхилень точок тренду від реальних значень
    TEMP=Yt-YPoly;
                    %TEMPG(1,Xt)=TEMP; %%%%%
    TEMP=TEMP.*TEMP;
    % шукаємо середнє значення квадратів відхилень і записуємо його у відповідне місце масиву F
    F2(1,index)=sum(TEMP)/S;
    % переходимо до наступного вікна та до наступного елементу масиву F
    windowBegin=windowBegin+S; windowEnd=windowEnd+S; index=index+1;
end
 
if (windowBegin~=n+1)
    F2=[F2 zeros(1,Ns)];
    % проходимо по вікнам справа-наліво
    windowBegin=n-S+1; windowEnd=n;
    XtStart=[1:S];
    while (windowBegin>=1)
        Xt=[windowBegin:windowEnd];
        Yt=Y(1,Xt);
        % у поточному вікні знаходимо тренд порядку ORDER
        A=GeneralMinSquare(XtStart,Yt,ORDER);
        % знаходимо точки тренду
        YPoly=GetPoly(A,XtStart);
                    %YPolyG(1,Xt)=YPoly; %%%%%
        % знаходимо квадрати відхилень точок тренду від реальних значень
        TEMP=Yt-YPoly;
                    %TEMPG(1,Xt)=TEMP; %%%%%
        TEMP=TEMP.*TEMP;
        % шукаємо середнє значення квадратів відхилень і записуємо його у відповідне місце масиву F
        F2(1,index)=sum(TEMP)/S;
        % переходимо до наступного вікна та до наступного елементу масиву F
        windowBegin=windowBegin-S; windowEnd=windowEnd-S; index=index+1;
    end
    % у векторі F2 знаходяться значення F^2(s,nu) для вікон ширини S
    % збільшуємо вдвічі кількість вікон, оскільки двічі використовувався цикл
    Ns=Ns*2;
end
 
%%%%%
figure;
plot(F2);
 
% очищуємо локальні змінні
clear m n windowBegin windowEnd index TEMP YPoly Xt Yt A;
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.04.2015, 17:48
Ответы с готовыми решениями:

Как сделать так что бы для каждого игрока генерировался новый вектор?
void addplayers(string Names){ for (i = 0; i &lt; numplayers; i++) {/*Создаем н-ое количество...

Матрица и вектор. Создать вектор, содержащий количество отрицательных элементов каждого столбца
Создать вектор М, т.е. одно мерный массив, содержащий количество отрицательных элементов каждого...

Дан вектро А, состоящий из N компонентов, и вектор В из М компонент.Построить новый вектор из M+N так:
Дан вектро А, состоящий из N компонентов, и вектор В из М компонент.Построить новый вектор из M+N...

Что не так с реализацией алгоритма generate_n для контейнера вектор?
реализация в main: generate_n(back_inserter(sp), size, Generator()); for ( Iter1 = sp1.begin(...

1
Заблокирован
28.04.2015, 17:56 2
Цитата Сообщение от Правила
Официальными языками форума являются русский и английский языки. Размещение сообщений на других языках запрещено.
...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.04.2015, 17:56
Помогаю со студенческими работами здесь

Для двумерного массива с M * N чисел получить вектор с минимальных элементов каждого столбца
Для двумерного массива с M * N чисел получить вектор с минимальных элементов каждого столбца и...

Создать вектор V1 из второго столбца матрицы А и вектор V2 из третьего столбца матрицы В
Даны две матрицы А и В. • Создать вектор V1 из второго столбца матрицы А и вектор V2 из третьего...

Сформировать вектор из строки и столбца
Сформировать вектор из строки и столбца матрицы неповторяющихся чисел, на пересечении которых стоит...

Найти номер первого столбца таблицы, для которого скалярное произведение на заданный вектор минимально
найти номер первого столбца таблицы, для которого скалярное произведение на заданный вектор...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru