我知道这听起来很搞笑,但我只是想知道。有关矩阵的问题
通常我们定义2x2
基质,它会在的形式,
A[1][1], A[1][2], A[2][1],A[2][2]
我们是否能够编写在该矩阵作为0.5各元素的差的矩阵?我怎样才能在C++中编写简单的代码?因为我正在处理雅可比安。
A[1][1] A[1][3/2] A[1][2]
A[3/2][1] A[3/2][3/2] A[3/2][2]
A[2][1] A[2][3/2] A[2][2]
我知道这听起来很搞笑,但我只是想知道。有关矩阵的问题
通常我们定义2x2
基质,它会在的形式,
A[1][1], A[1][2], A[2][1],A[2][2]
我们是否能够编写在该矩阵作为0.5各元素的差的矩阵?我怎样才能在C++中编写简单的代码?因为我正在处理雅可比安。
A[1][1] A[1][3/2] A[1][2]
A[3/2][1] A[3/2][3/2] A[3/2][2]
A[2][1] A[2][3/2] A[2][2]
作为可能的解决方案,您应该定义您自己的C++类,并使用数组索引的优选步骤并重载[]运算符。
[更新]这是这种类的原料例如:
class MyArray{
private :
int* pA;
unsigned int n;
float m_step;
public:
MyArray(unsigned int n, float step): pA(new int[n]), n(n), m_step(step){}
~MyArray(){ delete [] pA, n = 0 ;}
void populate(int p) {
for (unsigned int i = 0; i < n ; i++) {
pA[i] = p;
p++;
}
}
int& operator[](float i){ /** Calculate correct internal array index based on input i and specified m_step. Return array element value by calculated index */ }
const int& operator[](float i)const{ /** Calculate correct internal array index based on input i and specified m_step. Return array element value by calculated index */ }
unsigned int size(){ return n;}
unsigned int size()const { return n;}
};
你能解释一下吗?我还是不明白。抱歉。 – 2014-09-25 09:23:08
点击此处查看更多详情:http://www.cplusplus.com/forum/general/62240/这里也是很好的代码示例。 – 2014-09-25 09:26:19
代码中涉及的矩阵很可能就像正常矩阵的值[i] = {1,2,3}。但我看不到其中一个涉及浮点数/双数。 Huu .. – 2014-09-25 09:31:27
简单的答案是否定的。在最低级别,索引是相对于数组起始的 偏移量,其对应于内存中的物理地址 ,并且物理地址始终为 基数。
一个更普遍的答案是,你可以用它 可以订购任何类型的,或支持平等和兼容 散列为索引,只要使用std::map
或std::unordered_map
代替std::vector
。大致如下:
std::map<double, std::map<double>> A;
你的情况的问题是你用什么类型的密钥。 由于四舍五入的问题,double
是而不是 是明智的关键。 std::ratio
可能是适应性的;否则,你必须自己弄清楚一些事情。如果你很漂亮 确定这些值都将非常接近 整数,或者非常接近以.5
结尾的值,并且 的值将相当小,那么您可能会使用 特殊排序:
struct Order
{
bool operator()(double lhs, double rhs) const
{
static double const epsilon = 0.25;
double l;
modf(2 * lhs + epsilon, &l);
double r;
modf(2 * rhs + expsilon, &r);
return l < r;
}
};
(这个假设,所有的指标都是非负)在这一点上,不过,你不妨创建自己的 矩阵,利用l
和r
,上面物理指标。
请注意,在C++中,3/2
是1
,而不是1.5
。
你需要从你奇怪的半空间重新映射到自然数。这只是关于重新标签。 – 2014-09-25 09:11:26
你的意思是什么意思? – 2014-09-25 09:23:42