我怎么能找到体积的集成速度

2视图(30天)
我试图执行体积速度的集成。这些数据是随机的,但在一定的范围内。
x是从-10年到30,y和z从1到1,从0到1 U。
我的代码如下所示
数据= xlsread (“Re_100_dh_0.1.xlsx”);
U =数据(:1);%(:1)首先意味着所有列
x =数据(:,2);%(:,2)意味着所有第二列
y =数据(:,3);%(:,3)意味着所有第三列
(z =数据:4);%(:,4)意味着所有第四列
结果= trapz (x, trapz (y, trapz (z, U, 3), 2), 1);% %我的问题来了。
这些收益率错误显示,长度(x)的长度必须等于Y的昏暗的个dimendion。
我该如何应对呢?

答案(1)

沃尔特·罗伯森
沃尔特·罗伯森 2019年5月18日
U =数据(:1);%(:1)首先意味着所有列
所以你是一个列向量
(z =数据:4);%(:,4)意味着所有第四列
z是一个列向量的大小一样
trapz (z, U, 3)
请求中的值z trapazoid求和沿着三维完成,使用你的内容作为第三维坐标。然而我们知道,z是一个列向量,沿着第三维是1,所以它的长度不匹配你的长度。
如果它发生,x, y, z与价值建立常规的长方体U每一点……你没有足够的U值。
所以我们必须推断出你没有正则网格:你有散点。你不能使用trapz意义做卷集成在这种情况下。
或许你可以重塑你的x, y, z形成规律的长方体。如果是这样那你需要知道他们是订单,你需要知道边际边的长度。你将重塑,等
marglen = [17 11 16];
X =重塑(X, marglen);
Y =重塑(Y, marglen);
Z =重塑(Z, marglen);
UU =重塑(U, marglen);
一旦完成将成为有意义的开始使用trapz各种维度,
trapz(挤压(X (:, 1, 1)), trapz(挤压(Y (1: 1)), trapz(挤压(Z (1 1:)), UU, 3), 2), 1)
这里挤()部分的目的是提取边缘惟一值为每个方向。
4评论
沃尔特·罗伯森
沃尔特·罗伯森 2019年5月19日
你考虑过
countx =长度(独特的(x));
县=长度(独特(y));
countz =长度(独特(z));
你覆盖countx,县countz。您指定的值增加到3573409800。为向量,允许每个条目,8个字节给28587278400个字节,约27 g。编写代码,也意味着x和y和z和U也至少大,让你超过108 gb。

登录置评。

类别

找到更多的在数值积分和微分帮助中心文件交换

标签

s manbetx 845


释放

R2011a

社区寻宝

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

开始狩猎!