我正在尝试学习android开发,我最初对Eclipse和Android Studio之间的不同项目结构感到困惑.这使得很难学习为Eclipse设计的教程.谁能让我知道为什么存在这些差异?它们应该存在吗?
例如,如果我要在两个不同的IDE中找到R.java文件,那么路径将如下所示:
Eclipse: app\gen\com.example.app\R.java
Android Studio: app\build\source\r\debug\com.example.app\R.java
为什么这些路径不同?为什么我的R.java位于Android Studio的调试文件夹中?这会在早期导致一些错误,如果有人对这些差异有任何见解,我会很感激.
首先,一点背景:
我使用球面谐波作为球体表面上的函数示例,如此图像中的前球体:

我制作了这些球体中的一个,根据其表面上的点处的谐波函数的值着色.我首先做了很多点,所以我的功能非常准确.我称之为我的fine球体.

现在我有了我的fine球体,我在球体上占据了相对较少的点数.这些是我想要插入的点,训练数据,我称之为interp点.以下是我的interp点,在他的值上着色,绘制在我的fine球体上.

现在,该项目的目标是使用这些interp点来训练SciPy径向基函数以在球体上插入我的函数.我能够这样做:
# Train the interpolation using interp coordinates
rbf = Rbf(interp.phi, interp.theta, harmonic13_coarse)
# The result of the interpolation on fine coordinates
interp_values = rbf(fine.phi, fine.theta)
Run Code Online (Sandbox Code Playgroud)
哪个产生了这个插值,绘制在球体上:

希望通过最后一张图片,您可以看到我的问题.注意通过插值的线?这是因为插值数据具有边界.边界是因为我使用球面坐标([0,pi]和[0,2pi]处的边界)训练径向基函数.
rbf = Rbf(interp.phi, interp.theta, harmonic13_coarse)
Run Code Online (Sandbox Code Playgroud)
我的目标,以及为什么我发布这个问题,是使用球体上数据的x,y,z笛卡尔坐标在球体表面上插入我的函数.这样,由于球体没有边界,我不会像在球坐标中那样出现这个边界误差.但是,我只是无法弄清楚如何做到这一点.
我试过简单地给Rbf函数提供x,y,z坐标和函数的值.
rbf=Rbf(interp.x, interp.y, interp.z, harmonic13_coarse)
interp_values=rbf(fine.x,fine.y,fine.z)
Run Code Online (Sandbox Code Playgroud)
但NumPy却给我一个奇异矩阵错误
numpy.linalg.linalg.LinAlgError: singular matrix
Run Code Online (Sandbox Code Playgroud)
有什么方法可以让我用笛卡尔坐标给Rbf我的数据站点,每个站点都有函数值,并且它的行为与球面坐标的行为相似但没有边界吗?从Rbf文档中,有norm用于定义不同距离范数的属性,我是否必须使用球形距离才能使其工作?
我对此很难过.如果您对没有球坐标边界的球体内插函数有任何想法,请告诉我.
这是我的完整代码:
import matplotlib.pyplot as plt
from matplotlib import cm, colors
from mpl_toolkits.mplot3d import Axes3D …Run Code Online (Sandbox Code Playgroud) 首先,我试图在matplotlib中绘制球谐函数,因为它们在mayavi中可以看到:http://docs.enthought.com/mayavi/mayavi/auto/example_spherical_harmonics.html
这是我在的地方:
import matplotlib.pyplot as plt
from matplotlib import cm, colors
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
from scipy import special
# Create a sphere
r = 3
pi = np.pi
cos = np.cos
sin = np.sin
phi, theta = np.mgrid[0:pi:50j, 0:2*pi:50j]
x = r * sin(phi) * cos(theta)
y = r * sin(phi) * sin(theta)
z = r * cos(phi)
colorfunction=special.sph_harm(3,4,theta,phi).real
norm=colors.Normalize(vmin = np.min(colorfunction), vmax = np.max(colorfunction), clip = False)
print colorfunction
fig = plt.figure() …Run Code Online (Sandbox Code Playgroud) 我想要做的是并排放置一对 3D 图形。

在 matplotlib 中,我能够像这样创建这些子图:
ax1 = fig.add_subplot(121, projection='3d')
我在这里尝试使用 Mayavi 进行 3D 绘图,因为它解决了我遇到的其他一些问题,但我似乎无法找到并排绘制两个图形的方法。
这甚至可能吗?