我有一个4x~50,000 array
,其中第一个3 rows
持有x y z coordinates
,然后是某个给定位置的相应值。
即,
row 1 | 1 2 3 4 5 1...
row 2 | 1 1 1 1 1 1...
row 3 | 0 0 0 0 0 1...
row 4 | 0.7 0.2 1.0 0.3 0.3 0.5
我想将此数据重新排列为3D array
,以fMRI样式绘制此数据
例如,
3Darray(1,1,0) = 0.7
3Darray(2,1,0) = 0.2
3Darray(3,1,0) = 1.0
。 。
我无法同时浏览行以匹配所有三个x,y,z, values
。
欢迎任何建议!
谢谢,
此致
P
答案 0 :(得分:2)
这是sub2ind
的工作!这是我为测试而制作的虚拟数组,
%// example array
array=[1 2 3 4 5 1 2 3 4 5
1 1 1 1 1 2 2 2 2 2
1 1 1 1 1 1 1 3 3 3
rand(1,10)]
代码:
n=max(array(1:3,:),[],2).'; %// get size of final array
m=zeros(n); %// make an array of zeros of that size
ind=sub2ind(n,array(1,:),array(2,:),array(3,:)); %// get linear indices of elements
m(ind)=array(4,:); %// put elements into the array