小编Sib*_*ing的帖子

如何将矢量投影到Python中由其正交矢量定义的平面上?

我有一个平面,plane A由它的正交向量定义,比方说(a, b, c).

(即向量(a, b, c)是正交的plane A)

我希望将一个矢量(d, e, f)投影到plane A.

我怎么能在Python中做到这一点?我认为必须有一些简单的方法.

python math 3d linear-algebra

5
推荐指数
1
解决办法
7763
查看次数

从Android陀螺仪获取四元数?

官方开发文档提出了以下从3D旋转速率向量获取四元数的方法(wx, wy, wz).

// Create a constant to convert nanoseconds to seconds.
private static final float NS2S = 1.0f / 1000000000.0f;
private final float[] deltaRotationVector = new float[4]();
private float timestamp;

public void onSensorChanged(SensorEvent event) {
  // This timestep's delta rotation to be multiplied by the current rotation
  // after computing it from the gyro sample data.
  if (timestamp != 0) {
    final float dT = (event.timestamp - timestamp) * NS2S;
    // Axis of the rotation sample, …
Run Code Online (Sandbox Code Playgroud)

android quaternions gyroscope

5
推荐指数
2
解决办法
1万
查看次数

如何使标记显示在Google Map初始窗口的中心?

我在我的应用中使用Google Maps V2 Android.

我在新加坡的地方放了一个标记.

但我注意到每次我的应用程序启动时,初始窗口有点总是南美洲.

如何使地图中心的标记自动缩放到新加坡地区?

我将标记放置如下:

googleMapLocation = new LatLng(latitude, longitude);
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
map.addMarker(new MarkerOptions().position(googleMapLocation).title("I am here!"));
Run Code Online (Sandbox Code Playgroud)

android google-maps google-maps-api-2 google-maps-android-api-2

4
推荐指数
1
解决办法
539
查看次数

如何在Python中自动跳出死循环?

我在Python中有一个"do ...,until ......"结构,如下所示:

while True:
    if foo() == bar():
        break
Run Code Online (Sandbox Code Playgroud)

在大多数情况下,它工作正常(跳到最后).但是,在某些从未遇到过这种情况的情况下,它会卡在那里.

弄清楚这些情况是什么有点困难,因为它本质上是一个随机的过程.所以我希望为while循环设置一个"超时"的东西.

比如说,如果循环已运行1秒,但仍未停止,我希望循环终止.

我怎么能这样做?


更新:这是实际代码:

while True:
    possibleJunctions = junctionReachability[junctions.index(currentJunction)]
    nextJunction = random.choice(filter(lambda (jx, jy): (jx - currentJunction[0]) * (endJunction[0] - currentJunction[0]) > 0 or (jy - currentJunction[1]) * (endJunction[1] - currentJunction[1]) > 0, possibleJunctions) or possibleJunctions)
    if previousJunction != nextJunction: # never go back        
        junctionSequence.append(nextJunction)
        previousJunction = currentJunction
        currentJunction = nextJunction
    if currentJunction == endJunction:
        break
Run Code Online (Sandbox Code Playgroud)

python

4
推荐指数
2
解决办法
635
查看次数

如何在MATLAB中集成离散的2D曲面?

我有一个函数z = f(x, y),其中z的值是点(x, y).我如何可以集成zx-yMATLAB中飞机?

通过上面的函数,我实际上意味着我有类似于哈希表的东西.也就是说,给定一(x, y)对,我可以查找表格以找到相应的z值.

问题是相当简单的,如果点均匀分布在x-y平面上,在这种情况下,我可以简单地将所有z值相加,将其与底部区域相乘,最后将其除以我所拥有的点数.但是,分布不均匀,如下所示.所以我实际上要求的是最小化误差的计算方法.

在此输入图像描述

math matlab

4
推荐指数
2
解决办法
8014
查看次数

在MATLAB子图中设置XTick?

我正在尝试XTick为每个子图设置.在这里阅读了MATLAB文档后,我决定执行以下操作,但它不起作用.

MWE

subplot(2, 1, 1);
gca.XTick = [0, 6, 12, 18, 24];
subplot(2, 1, 2);
gca.XTick = [0, 6, 12, 18, 24];
Run Code Online (Sandbox Code Playgroud)

我的MATLAB版本是

>> version

ans =

8.4.0.150421 (R2014b)
Run Code Online (Sandbox Code Playgroud)

matlab plot

4
推荐指数
1
解决办法
2767
查看次数

如何为MATLAB errorbar plot的点和垂直线设置不同的图例?

我有一个errorbar显示平均值和标准差的图表.我希望有一个圆圈的传奇项目,平均值和一个单独的条形图.就像是,

--------------------------
| o mean                 |
| | standard deviation   |
--------------------------
Run Code Online (Sandbox Code Playgroud)

MWE

errorbar([1 2], [2 3], [0.1 0.2], 'o');
legend('mean +- stddev', 'Location','north')
Run Code Online (Sandbox Code Playgroud)

给了我这个

在此输入图像描述

matlab matlab-figure

4
推荐指数
2
解决办法
3363
查看次数

Android - 将传感器读数写入.txt文件.用户界面冻结

基本上,我正在尝试将传感器数据写入.txtSD卡中的文件中.

当我设置为(int i = 0; i%2 == 0; i ++)时,它完全正常工作,即.txt每2个样本将数据写入文件.

但是如此代码所示,我将5更改为1,即我希望每个样本都写入文件中.一旦我运行它,UI就会冻结.

有人可以帮我解决这个问题吗?

可以通过创建另一个线程来修复吗?(这样说准确吗?)

我是新手,因此只能粗略地知道问题可能是由于线程问题.

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity implements SensorEventListener {

    EditText txtData;
    Button startButton;
    Button stopButton;

    File myFile;
    FileOutputStream fOut;
    OutputStreamWriter myOutWriter;
    BufferedWriter myBufferedWriter;
    PrintWriter myPrintWriter;


    private SensorManager …
Run Code Online (Sandbox Code Playgroud)

multithreading android android-lifecycle

3
推荐指数
1
解决办法
2787
查看次数

获取数据的SENSOR_TYPE_GRAVITY的工作机制是什么? - Android

我有一个从Android手机加速度计获得的3-D加速度矢量(a,b,c).

我想计算这个向量(a,b,c)和重力向量之间的角度,它精确地指向下方.

我注意到在Android中,有一种方法可以在电话坐标系的上下文中取代重力矢量而不是世界坐标系.通过简单地使用传感器类型SENSOR_TYPE_GRAVITY,我可以得到三维重力矢量(d,e,f).由于两个矢量都在相同的坐标系下,因此电话坐标系统.通过简单的矢量内积,可以很容易地找到它们的角度.

找到此角度后,即使我们从电话坐标系移动到真实坐标系,角度也保持不变.

我的问题:

这背后的工作机制是SENSOR_TYPE_GRAVITY什么?

我不认为有另一种硬件可以测量重力.因此,测量重力的只是测量仪.重力如何提取我们的结果?

我在问,因为我担心这种获得引力的方式的准确性.

如果它不准确,我可以实现一个LPF来自己过滤直流分量,重力.我不确定是否SENSOR_TYPE_GRAVITY比我自己更准确.

==================================更新=============== ========================

为了澄清,我可以使用以下代码正确获取BOTH加速度和重力数据吗?

通过正确,我的意思是加速度和重力属于同一个特定的时刻吗?我需要在一个瞬间使用这些值.因此,加速度为时间= 13:12:00并且重力是较晚时间的情况,例如时间= 13:12:01是不期望的.

public void onSensorChanged(SensorEvent event) { 

    if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) { 
        acceleration[0] = event.values[0];
        acceleration[1] = event.values[1];
        acceleration[2] = event.values[2];
    }

    if (event.sensor.getType() == Sensor.TYPE_GRAVITY) {
        gravity[0] = event.values[0];
        gravity[1] = event.values[1];
        gravity[2] = event.values[2];
    }

}
Run Code Online (Sandbox Code Playgroud)

android gravity android-sensors

3
推荐指数
1
解决办法
2992
查看次数

根据指标对候选人列表进行排序 - Python?

我有一个二维点列表

candidates = [(x1, y1), (x2, y2), (x3, y3), ...]
Run Code Online (Sandbox Code Playgroud)

和参考点ref = (x0, y0).

我现在希望candidates根据它们与参考点的欧氏距离ref按升序对列表进行排序.

什么是最Python的方式这样做的?

python sorting list

3
推荐指数
2
解决办法
1318
查看次数