У меня есть моя матрица «А» которым пользователь определить его размер, например, пользователь определить размер 3x5 для матрицы A:Преобразовать строку матрицы в вектор
[1 2 3 4 5]
A= [2 4 6 8 3]
[2 4 5 7 8]
Мне нужно преобразовать строки в новые векторы, как это:
A1=[1 2 3 4 5]
A2=[2 4 6 8 3]
A3=[2 4 5 7 8]
Но проблема в том, что, поскольку пользователь может изменить размер матрицы (добавление/удаление строк), мне нужно взять векторы. Например, пользователь определить новый размер матрицы А как 5х5, так что мне нужно
A1=[...]
A2=[...]
...
A5=[...]
Я не хотел бы, чтобы вручную поместить новые векторы, так как число строк может стать слишком большим (около 500 или более) и поместить каждый новый вектор вручную, становится практически невозможным. Поэтому мне нужно, чтобы MatLab делал это автоматически.
У меня есть матрица, и мне нужны строки, но каждая строка должна быть вектором, потому что мне нужно вычислить каждый вектор отдельно.
У меня есть этот пример кода
dim=5; % Define by User
dim1=15*dim;
A=[];
B=[];
x=round(rand(dim1));
for i=1:dim
A(i,1)=x(i);
end
for i=1:dim1
B(i,1)=x(i+1);
end
B=vec2mat(B,15);
У меня есть матрица B, но мне нужно взять свои ряды в отдельно векторов:
B1= B(1,:)
B2= B(2,:)
...
B5=B(5,:)
Проблема заключается в том, что тусклый может быть 500 или более, и писать так много векторов вручную очень сложно. Поэтому мне нужна помощь в выполнении цикла.
---------------- EDIT --------------
Проблема заключается в следующем:
Пользователь определим матрицу, например:
[1 2 3 4 5]
A= [2 4 6 8 3]
[2 4 5 7 8]
Таким образом, программа должна показать мне строки в разных векторах
A1=[1 2 3 4 5]
A2=[2 4 6 8 3]
A3=[2 4 5 7 8]
Если пользователь дает мне другую матрицу
[1 2 3 4 5]
[2 4 6 8 3]
A= [2 4 5 7 8]
[4 5 6 6 7]
[8 2 3 3 1]
Программа должна показать мне
A1=[1 2 3 4 5]
A2=[2 4 6 8 3]
A3=[2 4 5 7 8]
A4=[4 5 6 6 7]
A5=[8 2 3 3 1]
Диапазон строк матрицы, которые пользователь определяют между 30 и 1200. Таким образом, мне нужно, что MatLab сделать векторы каждой строки автоматический.
Я попытался определить каждый вектор таким образом:
AA = sym('A%d', [rows 1]);
Так что у меня A1, A2, A3, и т.д. ... и, после этого, я мог бы сделать (для последнего примера)
A1=[1 2 3 4 5]
A2=[2 4 6 8 3]
A3=[2 4 5 7 8]
A4=[4 5 6 6 7]
A5=[8 2 3 3 1]
Но, я не знаю, как сделать этот цикл.
Спасибо
* Зачем вам это нужно? Вы можете передавать строки любой функции, которая вам нужна, с использованием двоеточия, нет причин отделять их на уникальные переменные. – excaza
Nonononono ... Почему бы вам создать 500 новых переменных, если 'A (1, :)' отлично исправна? И проще контактировать. – beaker
Я отредактировал вопрос, поэтому, надеюсь, я правильно сформулировал свою точку зрения. –