Может кто-то пожалуйста, объясните следующее выражение MATLAB:MATLAB выражение на левой стороне
Matrix_l(2,:,1:5)=FX1(:,1:5)
Я понимаю, что все строки столбцы 1 до 5 из FX1
копируются. То, что я не понимаю, - это левое выражение.
Может кто-то пожалуйста, объясните следующее выражение MATLAB:MATLAB выражение на левой стороне
Matrix_l(2,:,1:5)=FX1(:,1:5)
Я понимаю, что все строки столбцы 1 до 5 из FX1
копируются. То, что я не понимаю, - это левое выражение.
Ваша LHS-матрица - kind of 3D-Object. Таким образом, вы вставляете все поля из всех строк и столбцов с 1 по 5 из FX1 во второй слой Matrix_I всех строк и столбцов с 1 по 5.
Вы можете представить это как кусок 3D-куба, приводящий к 2D-плоскости в который вставляются ваши данные из FX1. Надеюсь, что помогает.
Поскольку я не знаю размеров вашей фактической матрицы, я взял размеры моего собственного удобства.
FX1
размеров 5x7
Matrix_l
размеров 5x5x6
Для того, чтобы понять физически, вертикальный срез (визуализировать черную доску) копируется на 2-й горизонтальный слой (визуализировать пол) в 3D-матрицы.
Первые 5 столбцов 2D матрицы (т.е. один справа - FX1
в вашем случае) копируется в 2-й строки и 1-5 единиц в 3-м измерениях 3D-матрицы (т.е. один слева - Matrix_l
в вашем случае)
Кроме того, matlab может обрабатывать еще более высокие размеры. Физически представить их было бы невозможно. Тем не менее стоит знать, как это работает.
Также посмотрите на Indexing
и Colon(:)
оператор для получения дополнительной информации.
Да, это помогло. Фаза обучения. Большое спасибо. – mithun
Я только что редактировал свой пост - вы можете посмотреть дальше в http://de.mathworks.com/help/matlab/math/multidimensional-arrays.html. Счастливое обучение. И, пожалуйста, отметьте этот ответ как решение. Заранее спасибо. –