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

Преобразование вектора в матрицу

20.06.2014, 15:59. Показов 3621. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дня доброго, форумчане!

Стоит задача преобразовать вектор N чисел в матрицу (N/4;4). Функция B = reshape(A, m, n) не подходит по причине выборки по столбцам, а мне надо по строкам. Это задача минимум.

Задача максимум получить из вектора:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
матрицу:
1 2 3 4 5
5 6 7 8 9
9 10 11 12 13
13 14 15 16 17

Заранее преогромнейшее!!!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.06.2014, 15:59
Ответы с готовыми решениями:

Преобразование вектора в матрицу
Здравствуйте! Не нашел, к сожалению, ответа на свой вопрос на форуме. Вопрос вот в чем: Как преобразовать вектор в матрицу вида: ...

Из вектора получить матрицу 4-го порядка, в каждом столбце которого записаны последовательно элементы вектора
Помогите,не могу понять как это сделать : Задан вектор x=1:16. Получить из него матрицу 4-го порядка, в каждом столбце которого записаны...

Преобразование вектора времени в числовые значения
Здравствуйте. Я совсем новичок в программировании, помогите разобраться с задачей. В общем имеется матрица данных, более 50000 строк....

9
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
20.06.2014, 17:22
x_rom79,
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
clear,clc
X=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ]
i=0;
var=1;
while(i~=20)
if(mod(i,5)==4)
z(1+floor(i/5),1+mod(i,5))=var;
i=i+1;
else
z(1+floor(i/5),1+mod(i,5))=var;
var=var+1;
i=i+1;
end
end
disp(z)
1
141 / 111 / 19
Регистрация: 14.04.2014
Сообщений: 224
Записей в блоге: 10
20.06.2014, 17:54
Цитата Сообщение от x_rom79 Посмотреть сообщение
Функция B = reshape(A, m, n) не подходит по причине выборки по столбцам, а мне надо по строкам.
Стесняюсь спросить, а чем все же reshape плох? всегда же можно результат транспонировать...

И потом не очень понятно, что делать если размер исходного вектора не кратен 4? И как все же формулируется задача максимум? Хорошо, когда нужно написать функцию для конкретного примера, там и число последнее в строке дублируется на первом месте в следующей, а если для такого же примера взять строку из 18 элементов? Тогда последний пропадет...

Вобщем, без ясного ТЗ - результат ХЗ, как говорится...

ЗЫ
Matlab M
1
2
3
X=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20];
Y = reshape(X, 4, [])' % 4 столбца
Y = reshape(X, [], 4)' % 4 строки
1
0 / 0 / 0
Регистрация: 20.06.2014
Сообщений: 5
20.06.2014, 18:00  [ТС]
Спасибо огромное за оперативный ответ!

Я ступил неверно поставив задачу (. Мне нужно привести к заданному виду вектор из вложения... а в Вашем коде прибавляются значения.
Помогите с учетом изменения условий плиз.
Вложения
Тип файла: zip matlab.zip (3.7 Кб, 6 просмотров)
0
141 / 111 / 19
Регистрация: 14.04.2014
Сообщений: 224
Записей в блоге: 10
20.06.2014, 18:09
я ща начну ругаться...
Цитата Сообщение от x_rom79 Посмотреть сообщение
к заданному виду
к какому "заданному виду"? с повтором элемента в следующей строке?
Цитата Сообщение от x_rom79 Посмотреть сообщение
в Вашем коде прибавляются значения
где, что прибавляется?
Как человека прошу, НАПИШИТЕ ЧТО НАДО СДЕЛАТЬ...
0
0 / 0 / 0
Регистрация: 20.06.2014
Сообщений: 5
20.06.2014, 18:16  [ТС]
Спасибо за интерес к моей просьбе.
Мне необходима матрица из этого вектора для обучения нейросети. В моем случае кратность не имеет значения, так как для выборки беру произвольные данные. Последнее значение равно 0, я его потом руками править буду

Добавлено через 4 минуты
Имеем
2220,00
2208,99
2186,17
2165,00
2160,01
2160,01
2160,01
2139,99
2136,59
2155,00
2115,00
2134,00
и т.д.
Нужно:
2220,00 2208,99 2186,17 2165,00 2160,01
2160,01 2160,01 2160,01 2139,99 2136,59
2136,59 2155,00 2115,00 2134,99 0,00
и т.д....

Добавлено через 2 минуты
То есть помимо приведения вектора в матрицу необходимо, что бы 5-ый столбец равнялся первому значению следующей строки.
0
141 / 111 / 19
Регистрация: 14.04.2014
Сообщений: 224
Записей в блоге: 10
20.06.2014, 18:35
таким образом, столбцов как бы 4 (по факту 5, но пятый почти дублирует первый) правильно?
0
0 / 0 / 0
Регистрация: 20.06.2014
Сообщений: 5
20.06.2014, 18:37  [ТС]
Да, верно.

Добавлено через 42 секунды
Дублирует значение из следующей строки первого столбца.
0
141 / 111 / 19
Регистрация: 14.04.2014
Сообщений: 224
Записей в блоге: 10
20.06.2014, 18:40
Лучший ответ Сообщение было отмечено x_rom79 как решение

Решение

Matlab M
1
2
3
load('matlab.mat')
m = reshape(d, 4, [])';
m = [m [m(2:end, 1); 0]]
enjoy!

PS
только учти, что если что вдруг размер исходного вектора не кратен 4, то придется исправлять это
0
0 / 0 / 0
Регистрация: 20.06.2014
Сообщений: 5
20.06.2014, 18:52  [ТС]
Спасибо огромаднейшее!!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.06.2014, 18:52
Помогаю со студенческими работами здесь

Нужно написать пример умножения вектора на вектор, матрицу на матрицу
Нужно написать пример умножения вектора на вектор, матрицу на матрицу, умножения вектора на матрицу, и конечно же сделать проверки. Спасибо...

Умножение вектора на матрицу и матрицы на матрицу
Дана матрица nxm, способ заполнения -2n до 2n. Формирования вектора, значение первых n элементов с нечетными индексами. Умножить...

Преобразование из вектора в массив
std::vector<long> create_vector(string adressOfFile, int countOfElem, vector<long> v) { string chitanChiclo; //считываем данные с...

Преобразование элемента целочисленного вектора в строку
Всем привет. Как можно преобразовать элемент целочисленного вектора в строку? Необходимо сравнить вектор строк с целочисленным вектором....

Преобразование фи задано координатами образа вектора
Приветствую вас форумчане! Попалось вот такое интересное задание, ни разу с таким не сталкивалась. Давайте разберем, одна справиться не...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru