이 질문은 내가 여기에서 묻는 질문의 연속이다 : Simple way to delete a matrix column in Mathematica @belisarius와 @Daniel이 매우 유용한 답을 제공했다.Mathematica에서 행렬의 행/열리스트를 효율적으로 선택/삭제
내가 일반적으로 시도하는 것은 매트릭스에서 특정 라인과 컬럼을 추출하는 것입니다. 또는 지정된 라인이 제거 된 후에 남는 것은 무엇입니까? 그래서 이것은 공식적으로 다음과 같이 쓸 수 있습니다 : TakeOperator와 Drop Operator를 다음과 같이 찾으십시오 :
TakeOperator [A, {i1, .., ip}, {j1, ..., jq}] = (A [[ik] [[JL]) (1 < < = K = P, L = 1 < < 우리는 주목 = Q) = Table[A[[ik]][[jl]],{k,p},{l,q}]
IC에서 I'1 = {..., i'p '} = Complement
{{1, ..., Length[A]
}, {i1, ..., ip}]; Jc = , {j1, ..., jq}];
DropOperator [A, {i1, ..., iq}] = (A [[ik] [[jl]]) (1 < = k '< = p '1 < = L'< = Q ') =
상술 트릭 마찬가지로 Table
, 그 방법 표를 사용하는 것이 매우 비효율적이지만 Table[A[[ik']][[jl']],{k',p'},{l','q}]
.
In: [email protected][a = RandomInteger[1000, {5000, 5000}];]
Out:0.218
In:Clear[b,c]
In:[email protected][
b = Table[
If[i < 100, If[j < 100, a[[i]][[j]], a[[i]][[j + 1]]],
If[j < 100, a[[i + 1]][[j]], a[[i + 1]][[j + 1]]]], {i,
4999}, {j, 4999}]]
Out:140.807
In:[email protected][c = Drop[a, {100}, {100}]]
Out:0.093
In:c===b
Out:True
참고 : 이전 게시물 Drop
의 사용에 관하여, 나뿐만 아니라 그것을 사용하는 방법에 대한 생각,하지만 난을 선택한 경우
당신은 ** 더 자세한 정보를 확인해야합니다 ** 도움 섹션 다음 정의는 것을 악용. 유용한 정보가 있습니다. ** Drop ** 도움말 항목에서'{n} \t element n only'을 찾을 수 있습니다 : D –
@ belisarius : 예. 그냥 봤어. 그것은 미로에서 조금 길게 느껴진다. .. 고마워. – Phil
그 느낌은 정상입니다. 도움말 시스템을 탐색하는 방법을 배우는 데 시간이 걸리며 함수 목록이 _huge_ –