首先我的問題看起來很簡單,但我仍然無法找到相關答案。 所以我有矩陣MX4選擇一列中的值與特定向量匹配的行
a = [(2:6)' rand(5,3)]
a =
2. 0.1589990 0.2725595 0.2944531
3. 0.0181815 0.3437655 0.5718074
4. 0.4098371 0.2033702 0.2141770
5. 0.0105835 0.3011945 0.6895462
6. 0.1965310 0.2762596 0.5855573
的大小和向量b與MX1的大小。 b的元素總是可以在a的第一列找到。例如:
b = [2;3;6]
我想是選擇行的第一列,其值匹配B的值,即
ans =
2. 0.1589990 0.2725595 0.2944531
3. 0.0181815 0.3437655 0.5718074
6. 0.1965310 0.2762596 0.5855573
所有我來到這麼遠的這些解決方案:
Ans(1,:) = a(a(:,1)==b(1),:);
Ans(2,:) = a(a(:,1)==b(2),:);
Ans(3,:) = a(a(:,1)==b(3),:);
略有自動化的版本:
Ans = zeros(size(b,1),size(a,2));
for i = 1:size(b,1)
Ans(i,:)=a(a(:,1)==b(i),:)
end
有沒有可能讓它變得簡單,可能在一條線上或沒有循環?
+1簡要回答! – Divakar