Matlab: как мне изменить способ хранения матрицы?от 1х1х3 до 1х3? - PullRequest
3 голосов
/ 18 января 2011

У меня сейчас есть:

val(:,:,1) =

    0.7216

val(:,:,2) =

    0.7216

val(:,:,3) =

    0.7216

Но я хочу

0.7216, 0.716, 0.721.

Какую операцию я могу сделать для этого?

Ответы [ 3 ]

4 голосов
/ 18 января 2011

Функция squeeze является еще одним вариантом, если в третьем измерении имеется различное количество элементов

>> squeeze(val)'
ans =
    0.7216    0.7216    0.7216

при условии, что вы хотите эти числа - требуемые числа в вашем вопросе на самом деле не совпадают со значениями из матрицы val.

3 голосов
/ 18 января 2011

Функция reshape поможет вам:

% Arrange the elements of val into a 1x3 array
val = reshape(val, [1 3]);

Поскольку вы преобразуете в вектор-строку, следующий синтаксис также будет работать:

val = val(:)';

Поскольку val(:) создает вектор-столбец, а оператор транспонирования ' затем переносит этот вектор-столбец в вектор-строку.

1 голос
/ 18 января 2011
val = val(:)';

Это должно сработать.

(:) преобразует его в столбец.

' перенесет его в строку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...