DISP (A)Как удалить конкретный элемент из матрицы в SciLab
1. 4. 5.
9. 13. 11.
46. 29. 11.
-> очистить (3,3) - ошибка 276 отсутствующего оператора, запятая или точка с запятой.
Я хочу удалить 11
DISP (A)Как удалить конкретный элемент из матрицы в SciLab
1. 4. 5.
9. 13. 11.
46. 29. 11.
-> очистить (3,3) - ошибка 276 отсутствующего оператора, запятая или точка с запятой.
Я хочу удалить 11
Команда clear
используется для удаления целых переменных см documentation. Если бы вы могли clear
на 3,3 поля было бы привести к искаженной матрице:
1. 4. 5.
9. 13. 11.
46. 29.
Я не знаю способ это возможно.
Что вам нужно? Вы хотите, чтобы определенные поля игнорировались. Вы можете просто установить его значение NaN (не число) и проверить, если он нан в коде с isnan:
A = rand(3,3)
A(3,3)= %nan
disp(A)
non_nans_indices = find(~isnan(A))
disp(A(non_nans_indices))
В обычной матрице вы не можете удалить только один элемент, как указано в ответе выше : вам нужно удалить полную строку или полный столбец. Однако в разреженной матрице вы можете. Редкая матрица хранит только ненулевые элементы матрицы. Так что, если ваши данные не содержат допустимые элементы с 0 значением, вы можете «удалить» любой элемент, установив его на 0, а затем преобразовать матрицу в разреженном виде с sparse
команды:
A=rand(3,3);
disp(A,"original matrix:");
A(3,3)=0;
disp(A,"element is nulled out:");
A=sparse(A);
disp(A,"sparse matrix:");
Таким образом, вы Безразлично 't сохранить 0 значений матрицы, которые могут сэкономить память или место для хранения. Если вы хотите, чтобы преобразовать обратно, вы можете использовать команду full
: элементы «недостающие» являются representeted нулями снова:
B=full(A);
disp(B,"full form:");
Но я думаю, что для отсутствующих или недопустимых значений, лучше использовать %nan
в соответствии с рекомендациями выше тоже: с этим легче справляться, более согласованно, и вы можете иметь нули в матрице в качестве достоверных данных.