How can I re-arrange a matrix?
조회 수: 1 (최근 30일)
이전 댓글 표시
Hi everyone,
Let's assume that I have a matrix X, dimensions 10x2, a variable z of dimensions 10x1. Then I want to create an interaction term based on the sorted values of y, so that the first half gets 0 and the highest values get 1. Then I want to regress the interaction term on variable y.
x = randn(10,2);
z = randn(10,1);
y = randn(10,1);
[zsorted,zsindex]=sort(z);
zsorted(1:5)=0; zsorted(6:end)=1;
% Interaction Term
intterm = x(zsindex,:).*zsorted;
How can i transform the elements of the interaction term back to the original order of x? I could get the same results by
res = ols(y(zsindex,:), intterm);
But is there any other way to be done?
Thanks in advance.
댓글 수: 0
채택된 답변
Walter Roberson
2020년 5월 8일
편집: Walter Roberson
2020년 5월 8일
z = randn(10,1);
[~,zsindex]=sort(z);
intterm = z;
intterm(zsindex(1:end/2)) = 0;
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Shifting and Sorting Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!