Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
2 / 1 / 1
Регистрация: 27.08.2019
Сообщений: 59

SVD матрицы. Ошибка с размерностью

29.08.2019, 14:51. Показов 1134. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте нужна ваша помощь в исправлении ошибки в коде.


Доступ к коду по ссылке: https://pastebin.com/raw/6CkTd3Y3


После запуска получаю ошибку:

Error using /
Matrix dimensions must agree.

Error in algorithm2 (line 15)
level = (MT*N/(r))*(1+ (sum(1./lambda.^2)/SNR));

Error in precoding (line 20)
[power]=algorithm2(MT,OFDM_FD_RX,SNR,N)


Пробовал уже множество вариантов. Может кто знает как исправить ошибку?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.08.2019, 14:51
Ответы с готовыми решениями:

Из матрицы размерностью 3х3 сформировать одномерный массив состоящий из всех элементов матрицы
ребята помогите пожалуйста, запутался, как из матрицы размерностью 3х3 сформировать одномерный массив состоящий из всех элементов матрицы,...

Проблемы с размерностью матрицы
Выдает ошибку при вводе размера матриц, 2*3.. не выдает ошибку если 2*2, 4*4... #include <vcl.h> #pragma hdrstop #include...

Сформирование матрицы размерностью M
Сформировать матрицу размерностью M вида: Последний элемент столбца переноситься на место первого и весь столбец сдвигается на позицию...

11
 Аватар для Krasme
7247 / 5100 / 2151
Регистрация: 02.02.2014
Сообщений: 13,464
29.08.2019, 15:24
по ссылке доступа нет
0
2 / 1 / 1
Регистрация: 27.08.2019
Сообщений: 59
29.08.2019, 15:37  [ТС]
Попробуйте https://docs.google.com/docume... sp=sharingKrasme,
0
 Аватар для Krasme
7247 / 5100 / 2151
Регистрация: 02.02.2014
Сообщений: 13,464
29.08.2019, 15:42
там тоже доступа нет
что вы ссылками заморачиваетесь?
данные можно заархивировать и прикрепить к сообщению (кнопка "скрепка")
matlab-код также вставляется в сообщение с помощью тегов
0
2 / 1 / 1
Регистрация: 27.08.2019
Сообщений: 59
29.08.2019, 15:42  [ТС]
Krasme, Еще одна проблемка, что то не так с опреатором for. Результатом функции должны быть несколько комплектов матриц, а он выводит только один комплект

Krasme,

Matlab M
1
2
3
4
5
6
7
A = [1 2 3; 4 5 6; 7 8 9];
A(:,:,2) = [10 11 12; 13 14 15; 16 17 18];
B = cat(3,A,[3 2 1; 0 9 8; 5 3 7]);
M=4;
S=2;
N=3;
v= algorithm(M,B,S,N)
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function [P,S]= algorithm(M,T,S,N)
 
[m n b]=size(H); % определение разерности тензора H, чтобы определить третьюразмерноть для деления на матрицы
% делю тензор на b -(m,n) матриц. Матрица это срез и таких у меня  b штук
for n = 1:b
    k=T(:,:,n);
    [U, S, V] = svd(k); % вычисляю SVD каждого среза
    lambda= diag(S); % беру только элементы на главной диагоняли матрицы S
    % вычисляю ранк
    r = length(lambda);
    P = zeros(r,1);
    q = r;
    % вычсиление уровня по формулы
    while q >0
        l = (M*N/(r))*(1+ (sum(1./lambda.^2)/S));
        % вычисление мощности
        for i = 1:q
            p(i) = (l) - (M*N/(S*lambda(i).^2));
        end
    end
end
end
algorithm должен вычислять набор векторов p( я так хотел написать). Всего векторов должен вывести b-штук.
Но когда я запускаю, то получаю всего один . Как исправить?
0
Эксперт по математике/физике
 Аватар для SSC
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
30.08.2019, 09:56
А что такое H в 3-ей строке?
И зачем использовать одинаковую переменную n в 3-ей и 5-ой строке?
0
2 / 1 / 1
Регистрация: 27.08.2019
Сообщений: 59
30.08.2019, 10:31  [ТС]
SSC, Ой, ошибка. Это T. Ивзините, не знаю как теперь исправить пост.
Про 3-5, ой спасибо.

Добавлено через 1 минуту
SSC, исправил. Изменил букву.Думал, исправлю ошибку, но она так и осталось. Только один набор выдает

Добавлено через 26 минут
Цитата Сообщение от Krasme Посмотреть сообщение
там тоже доступа нет
что вы ссылками заморачиваетесь?
данные можно заархивировать и прикрепить к сообщению (кнопка "скрепка")
matlab-код также вставляется в сообщение с помощью тегов

а как редактировать " ответ" в теме? Хотел бы отредактировать код или вставить его как архив
0
 Аватар для Krasme
7247 / 5100 / 2151
Регистрация: 02.02.2014
Сообщений: 13,464
30.08.2019, 10:36
варианта два:
1. попросить модератора исправить сообщение, нажав красный треугольник слева и написав там правильное содержание
2. пишите правильное сообщение следующим
0
Эксперт по математике/физике
 Аватар для SSC
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
30.08.2019, 11:11
Похоже у Вас проблема в повторном использовании переменных.
S в 15 строке уже не та что в 1, она стала матрицей в 7 стоке и число нельзя разделить на матрицу в 15 строке
0
2 / 1 / 1
Регистрация: 27.08.2019
Сообщений: 59
30.08.2019, 11:23  [ТС]
Цитата Сообщение от SSC Посмотреть сообщение
S в 15 строке уже не та что в 1, она стала матрицей в 7 стоке и число нельзя разделить на матрицу в 15 строке
S ( по определению SVD это матрица ( строка 7), для вычислений я использую только элементы главной диагонали (строка 8) в строке 15 и 18. Т.е я планировал что это будет вектор.

Строка 15 описывает следующую формулу [вставлю картинку]. S это p/sigma^2 из формулы


как тогда мне лучше всего прописать эту формулу?

Самое интересное, что код выдает результат, только один, а должен несколько для каждого из строки 6
Миниатюры
SVD матрицы. Ошибка с размерностью  
0
Эксперт по математике/физике
 Аватар для SSC
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
30.08.2019, 11:37
Цитата Сообщение от sasdam12 Посмотреть сообщение
код выдает результат, только один, а должен несколько для каждого из строки 6
В 18 строке маленькая p вместо заглавной, а это разные переменные

Добавлено через 9 минут
Цитата Сообщение от sasdam12 Посмотреть сообщение
как тогда мне лучше всего прописать эту формулу?
Я не вижу общности этих формул (кроме суммы 1 делить на лямду, да и то в формуле сумма ограничена).
А по факту:
(1./lambda.^2) - матрица 3х1
sum(1./lambda.^2) - число (1х1)
S - матрица 3х3
Итого: число нельзя векторно делить на матрицу
0
2 / 1 / 1
Регистрация: 27.08.2019
Сообщений: 59
30.08.2019, 11:39  [ТС]
Цитата Сообщение от SSC Посмотреть сообщение
В 18 строке маленькая p вместо заглавной, а это разные переменные
Это одно и тоже. Извините, я не могу исправить это теперь

Matlab M
1
P(i) = (l) - (M*N/(S*lambda(i).^2));
SSC, Я решил свою проблему. Спасибо
Миниатюры
SVD матрицы. Ошибка с размерностью  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.08.2019, 11:39
Помогаю со студенческими работами здесь

Составить программу для вычисления обратной матрицы для матрицы А размерностью 5х5
составить программу для вычисления обратной матрицы для матрицы А размерностью 5х5, выводится массив с помощью макросов в Word ...

В чём разница между фрактальной размерностью, размерностью Хаусдорфа и Минковского
Здравствуйте, в интернете много информации о размерностях, поэтому вышла некоторая путаница. В чём разница между фрактальной размерностью,...

SVD - разложение. Матлаб
Доброго времени суток. Занимаюсь SVD-разложением без использования стандартной функции svd. Матрица имеет размер m x n. Если m < n...

openocd + cmsis-svd
В openocd, кроме встроенного gdb сервера, есть также встроенные telnet сервер и скриптовый язык tcl. Это позволяет делать отладку и...

Вычислить сумму элементов матрицы А размерностью n*m
Дело в том, что я и программирование - взаимоисключающие параграфы, а эту штуку нужно запрограммировать. Кто-нибудь поможет мне в этом...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru