由买买提看人间百态

topics

全部话题 - 话题: sub2ind
(共0页)
G*****7
发帖数: 1759
1
function fast_grid_lookup
%% prepare the data
% randomly generate the query points
num_points = 20e6;
points = rand(num_points,2);
% specify the evenly-spaced mesh grid
num_divs = 1028; % per side
num_cells = num_divs^2;
grid_spacing = 1/(num_divs-1);
% you do not have to instantiate the grid points by
% grid = meshgrid(linspace(0, 1, num_div), linspace(0, 1, num_div));
%% find the enclosing cell of each point
tic;
points_in_cell = ceil(points/grid_spacing)+1; % damn you, 1-based matlab
toc;
%% ... 阅读全帖
l********a
发帖数: 1154
2
来自主题: Programming版 - 问一个matlab的问题
如果行列坐标矩阵是N,那么这样就行了
M(sub2ind(size(M),N(:,1),N(:,2))) = 1; % 这样就可以修改数据
分解开就是:
[m,n] = size(M); % 得到M的尺寸
idx = sub2ind([m,n],N(:,1),N(:,2)); % 转换二维坐标到一维
M(idx) = 1; % 修改数据
H***a
发帖数: 735
3
来自主题: Programming版 - 请教Matlab和IDL的处理数据能力差异
感谢thrust提供的优化,感谢kkff在“Matlab处理数组一问”这贴中回复教了俺
sub2ind这个无比好用的函数,现在程序优化如下。
测试结果:耗时8秒。非常赞!
Ex = zeros(numFreqs,sizeX,sizeY,sizeZ);
Ey = zeros(numFreqs,sizeX,sizeY,sizeZ);
Ez = zeros(numFreqs,sizeX,sizeY,sizeZ);
for procID=0:(numProcs-1)
fileName = sprintf('%d-NearFieldDFT.dat', procID);
data = fopen(fileName, 'r');

if data ~= -1
numPoints = fread(data, 3, 'int');
totNumPoints = numPoints(1)*numPoints(2)*numPoints(3);

xyz=fread(data,[3 totNumPoints],'int
H***a
发帖数: 735
4
来自主题: Programming版 - 请教Matlab和IDL的处理数据能力差异
ind = sub2ind([sizeX sizeY sizeZ], xyz(1,:), xyz(2,:), xyz(3,:));
Ex(:,ind) = Exyz(:,:,1);
Ey(:,ind) = Exyz(:,:,2);
Ez(:,ind) = Exyz(:,:,3);
这部分是您代码里的To do部分,把每个文件读到小块数据放入装整体数据的4维矩阵,
这个要占点时间吧。是的,也只是小的变动,我把坐标(x,y,z)连续输出,然后再输出
各个点相应的数值(numFreqs x 3 x totNumPoints)。
k**f
发帖数: 372
5
来自主题: Programming版 - Matlab处理数组一问

,y
try this:
x=1:3; y=1:3; k=sub2ind([3, 3], x, y]; A(k) = k;
c****p
发帖数: 6474
6
来自主题: Programming版 - 问一个matlab的问题
subs = [1 1; 3 5; 4 5;];
M(sub2ind(size(M),subs(:,1), subs(:,2))) = 1;
r****y
发帖数: 1437
7
来自主题: Computation版 - 一个循环的问题
in matlab, ind2sub and sub2ind ah
j**u
发帖数: 6059
8
sub2ind
b***k
发帖数: 2673
9
来自主题: Computation版 - matlab如何生成如下矩阵?
sub2ind can get matrix with the following order
1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25
but any way to get matrix with index in the following order:
1 3 6 10 15
2 5 9 14 19
4 8 13 18 22
7 12 17 21 24
11 16 20 23 25
thanks.
b***k
发帖数: 2673
10
来自主题: Mathematics版 - matlab如何生成如下矩阵?
【 以下文字转载自 Computation 讨论区 】
发信人: blook (布鲁克), 信区: Computation
标 题: matlab如何生成如下矩阵?
发信站: BBS 未名空间站 (Wed Jun 1 11:49:08 2011, 美东)
sub2ind can get matrix with the following order
1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25
but any way to get matrix with index in the following order:
1 3 6 10 15
2 5 9 14 19
4 8 13 18 22
7 12 ... 阅读全帖
(共0页)