是否有内置的MATLAB函数来确定矩阵是否包含某个值?(ala PHP的in_array())
我需要一个C#库来处理矩阵.它应该实现奇异值分解,矩阵求逆等
我之前使用过CSML,但这并没有实现我需要的一些功能.
一些特征是:
奇异值分解
矩阵反演
跟踪
行列式
建议的图书馆(来自答案)
(大多数都实现了上述功能)
在比较这些不同的类型或者这些东西是如何工作时,我能想到一个类比吗?
另外,统一矩阵意味着什么?
numpy中是否有一个智能且节省空间的对称矩阵,它在写入[j][i]时自动(并透明地)填充位置[i][j]?
import numpy
a = numpy.symmetric((3, 3))
a[0][1] = 1
a[1][0] == a[0][1]
# True
print(a)
# [[0 1 0], [1 0 0], [0 0 0]]
assert numpy.all(a == a.T) # for any symmetric matrix
Run Code Online (Sandbox Code Playgroud)
一个自动的Hermitian也会很好,虽然在写作的时候我不需要它.
在R中是否可以说 - 我想要从位置i到矢量/矩阵的末尾的所有索引?假设我想要从第3列开始的子矩阵.我目前只知道这种方式:
A = matrix(rep(1:8, each = 5), nrow = 5) # just generate some example matrix...
A[,3:ncol(A)] # get submatrix from 3rd column onwards
Run Code Online (Sandbox Code Playgroud)
但我真的需要写ncol(A)吗?是不是有任何优雅的方式如何说"从第3列开始"?有点像A[,3:]?(或A[,3:...])?
我需要计算numpy ndarray矩阵中的非NaN元素的数量.如何在Python中有效地做到这一点?这是我实现此目的的简单代码:
import numpy as np
def numberOfNonNans(data):
count = 0
for i in data:
if not np.isnan(i):
count += 1
return count
Run Code Online (Sandbox Code Playgroud)
numpy中是否有内置函数?效率很重要,因为我正在进行大数据分析.
Thnx任何帮助!
我正在优化一个函数,我想摆脱缓慢的for循环.我正在寻找一种更快的方法来将矩阵的每一行乘以一个向量.
有任何想法吗?
编辑:
我不是在寻找'经典'乘法.
例如.我有一个有23列和25行的矩阵和一个长度为23的向量.结果我想要矩阵25x23,每行乘以向量.
在最近的Java电话采访中我被问到这个问题:
您将获得具有以下属性的NxN二进制(0-1)矩阵:
例:
0 1 1
1 1 1
0 0 1
Run Code Online (Sandbox Code Playgroud)
每行中的位值被排序,行表示整数3,7和1.
找到表示最小整数的行.在上面的示例中,答案是第3行,它表示整数1.
我从二次复杂的蛮力开始.采访者回答说我没有利用排序的财产.
在思考了很多之后,我在每一行都使用了二元搜索,然后它来到了O(nlogn).他问我是否可以进一步改进.我想了很多但没有改进.
如果有人能提出任何关于改进它的指示,我将不胜感激.
另一个例子:
0 1 1 1
0 0 0 1
0 0 0 0
1 1 1 1
Run Code Online (Sandbox Code Playgroud)
答案是第3行,代表整数0.
(编辑:我在我的增强现实框架中添加了最好的工作方法,现在也考虑了陀螺仪,这使它再次更加稳定:DroidAR框架)
我编写了一个TestSuite来了解如何根据您获得的数据计算旋转角度SensorEventListener.onSensorChanged().我真的希望你能完成我的解决方案,以帮助那些像我一样遇到同样问题的人.这是代码,我想你会在阅读之后理解它.
随意改变它,主要的想法是实现几种方法将方向角发送到opengl视图或任何其他需要它的目标.
方法1到4正在工作,它们直接将rotationMatrix发送到OpenGl视图.
方法6现在也可以工作,但我没有解释为什么必须进行旋转yx z ..
所有其他方法都没有工作或有问题,我希望有人知道让他们工作.我认为最好的方法是方法5,如果它可行,因为它是最容易理解,但我不确定它是多么有效.完整的代码没有优化,所以我建议不要在项目中使用它.
这里是:
/**
* This class provides a basic demonstration of how to use the
* {@link android.hardware.SensorManager SensorManager} API to draw a 3D
* compass.
*/
public class SensorToOpenGlTests extends Activity implements Renderer,
SensorEventListener {
private static final boolean TRY_TRANSPOSED_VERSION = false;
/*
* MODUS overview:
*
* 1 - unbufferd data directly transfaired from the rotation matrix to the
* modelview matrix
*
* 2 …Run Code Online (Sandbox Code Playgroud) 我写这段代码来读取3个文件,TM是方阵的大小,LER是一个数组的行数,从最后一个值定义一个非方矩阵(ler/2)*2
然后......代码读取一个具有某种关系的文件,所有都是数字并分配给C [ler].
然后...... C [ler]被分配给B [ler/2] [2].
B [ler/2] [2]中每行的那些坐标分配给a和b.
a和b是矩阵A [tm] [tm]的行和列,其中加1.
我的代码崩溃,我不知道错误是什么.
当我尝试编译它时,编译器gcc -g -o MatSim MatSim.cpp提示:
/usr/include/c++/4.6/iostream:75: undefined reference to `std::ios_base::Init::Init()'
/usr/include/c++/4.6/iostream:75: undefined reference to `std::ios_base::Init::~Init()'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
另外,当我尝试编译它时,编译器f77 -o MatSim MatSim.cpp提示:
/tmp/cc6ewlkf.o: In function `__static_initialization_and_destruction_0(int, int)':
MatSim.cpp:(.text+0x17ad4a): undefined reference to `std::ios_base::Init::Init()'
MatSim.cpp:(.text+0x17ad4f): undefined reference to `std::ios_base::Init::~Init()'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
解
主要问题是库问题,使用以下代码编译代码:
g++ -g -o MatSim MatSim.cpp -lstdc
Run Code Online (Sandbox Code Playgroud)
还是行不通?安装库:
sudo apt-get install g++-multilib
Run Code Online (Sandbox Code Playgroud)