如何创建一个多维数组的固定尺寸?

8视图(30天)
我想创建一个4维的数组。每个维度有一个固定的大小。
x = 0 200 - - >步骤1
y = -25 - 25 - - >步骤0.5
z = 0到180 - - >步骤1
h = -10 10 - - >步骤0.1
背后的想法是拯救一个值在一个具体的位置。
例如,如果我有一个输入数组[30 -0.5,100 2]= 21
在这个位置我想保存价值。
在一个特定的数量我想读这个数组内的值。
希望你能帮助我!:)

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2020年5月9日
xmin = 0;xmax = 200;xincr = 1;
ymin = -25;ymax = 25;yincr = 0.5;
zmin = 0;zmax = 180;zincr = 1;
机构= -10;hmax = 10;hincr = 0.1;
xvec = xmin: xincr: xmax;
yvec = ymin: yincr: ymax;
zvec = zmin: zincr: zmax;
hvec =机构:hincr: hmax;
x2xidx = @ (xval)轮((xval - xmin) / xincr) + 1;
y2yidx = @ (yval)轮((yval - ymin) / yincr) + 1;
z2zidx = @ (zval)轮((zval - zmin) / zincr) + 1;
h2hidx = @ (hval)轮((hval -机构)/ hincr) + 1;
nx =长度(xvec);
纽约=长度(yvec);
新西兰=长度(zvec);
nh =长度(hvec);
M = 0 (nx、纽约、新西兰,nh);
%的例子使用
米(x2xidx (17), y2yidx (-6.5), z2zidx (93), h2hidx (4)) = 1;
[XIDX, YIDX ZIDX HIDX] = ind2sub(大小(M),发现(M));
disp ([XIDX, YIDX、ZIDX HIDX])
disp ([xvec (XIDX) yvec (YIDX) zvec (ZIDX) hvec (HIDX)))
你可以通过索引存储或者你可以使用辅助函数数值转换为索引。
7评论
马里亚纳
马里亚纳 2020年5月14日
如果我有一个变量每步向量。你建议如何找到索引?
rmin = 0;征求= 90;rincr = 0.5;
r2min = 91;r2max = 180;r2incr = 1;
r3min = 181.5;r3max = 250;r3incr = 1.5;
rvec = rmin: rincr:做;
r2vec = r2min: r2incr: r2max;
r3vec = r3min: r3incr: r3max;
relx =单([rvec, r2vec r3vec]);

登录置评。

答案(1)

史蒂文的主
史蒂文的主 2020年5月8日
没有所谓的第-25列在MATLAB的数组,也没有这种事第1.5列。
你可以与独立的坐标数组,您可以使用像指数(尽管像往常一样,小心当执行完全平等的比较 = = 在浮点数。我下面写的是安全的,因为所有的数字在x和y完全可以表示双精度)。
x = (5)。”;
y = (3:0.5:3);
z = x。^ 2 + y ^ 3;
z (x = = 4, y = = 1.5)% (4)^ 2 + (1.5)^ 3
如果你告诉我们更详细的关于你想怎么处理这个数组,我们可以提供备选建议。
1评论
马里亚纳
马里亚纳 2020年5月9日
这是一种我想做。为了节省这个数组的值在一个特定空间。数组有8个维度或8指数。你建议如何构建并将值添加到存储阵列吗?

登录置评。

类别

找到更多的在运营商和基本操作帮助中心文件交换

下载188bet金宝搏


释放

R2019a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!