2015-10-23 3 views
0

я хочу сделать следующее в Matlab:Как задать векторное однострочное векторное задание?

[nnz_rows, nnz_cols] = find(messages_matrix); 
nnz_matrix_points = [nnz_rows, nnz_cols]; 

Я хочу nnz_matrix_points быть 2xn вектор, содержащий индекс, найти возвращения, но я хочу сделать это в одной строке. Я пытался искать в Интернете, без успеха.

+0

У меня здесь нет MATLAB, но может быть что-то вроде '[x (:, 1), x (:, 2)] = find (mtx)'? – gregswiss

+1

Почему вы хотите сделать это в одной строке? Какое специальное вычислительное преимущество вы получаете, делая это в одной строке вместо двух? Выполнение этого способа более читаемо ИМХО. – rayryeng

+0

Это похоже на работу. Но может быть, есть более простое решение? – yaron

ответ

2
[nnz_matrix_points(1, :) nnz_matrix_points(2, :)] = find(messages_matrix); 

производит матрицу 2xN.

[nnz_matrix_points(:, 1) nnz_matrix_points(:, 2)] = find(messages_matrix); 

производит матрицу Nx2.

+0

@rayryeng Спасибо, что поймали мою ошибку. – IKavanagh

+1

Без проблем :) BTW +1. – rayryeng

Смежные вопросы