pca

最近pca用的比较多,以前听说过,学过,就是没用过

现在用了一下,体会深了很多

算covariance matrix其实也相当于算pca

算基于cov倒数的距离相当于在pca变换后的对轴进行校正后的距离。

轴校正后点的分布成为一个圆

现在的问题是优化计算,每次有大量点和上次重复。只要加上新的点XX‘去除旧的点就可以。均值算是一个点。

//半夜没睡好,想这个问题去了。

Advertisements

还是语言

以前是这么划分的:

语法相当于一等公民

标准库相当于二等公民

第三方类库相当于三等公民

现在觉得还得细分

语法本身也有不同等级

比如C++里面的exception就明显是个三等公民

再说类的概念

类的一种核心概念是自动分配和释放内存

从某种方面来说这是一种进步

可是从另外一个方面来说,这是个陷阱

为什么是陷阱呢?因为机器本身不支持这个概念

C/C++的机器是硬件

Java, .net的机器是vm

动态语言的机器是解释器

只有机器本身支持的特性才是一等公民

其他的都是二等公民或者以下

内存的自动分配是个美好的特性

但是如果机器本身不支持就成了假冒伪劣

或者,只是一种模仿秀,而不是真枪实货

另外,还有机器的数据模型

硬件机器的数据模型是字节数组

我这几天总试图用C实现matlab的语法

发现非常困难

而基本原因,则是因为矩阵是matlab的一等公民,是机器模型

而不是硬件机器的数据模型

另外还有范型

硬件机器是不支持泛型的

所以要写出基于范型的函数会非常蹩脚

C++有模板技术,同样,仅仅是一种模仿

很简单的

vector<double>和vector<int>是无法互换的

只有动态语言才是真正的泛型

那么将来是否是动态语言的天下呢?

当然不是

如果是以前,我也许会这么认为,但是现在再也不会

感觉新的东西总在变化,但是老的东西基本不怎么变

机器语言是所有语言的基础,虽然不会再有人用机器语言编程,但只是因为面向硬件的语言替换了它而以

比如汇编,比如C

有硬件存在的地方,就有C的用武之地

C要消失,除非等到硬件消失

硬件会消失么,当然不可能。所以C的寿命会是最长的。

再说动态语言,最早流行的动态语言似乎是perl,但现在明显不如python和ruby

那么将来呢?

也许会出现很多的领域语言

再说应用

从面向应用来说,高级语言似乎总比低级的语言更好

但现在不这么觉得,原因是硬件资源的限制

资源优化是一个永恒的主题

因为资源的稀缺是永恒的

资源的丰富永远只是一个假相

而资源,归根结底都是硬件资源

而优化硬件资源的使用,则必须使用面向硬件的语言

所以搞我这一个行当,信号处理,一个hyperspectal image就占了800MB。我能用动态语言么?用matlab都是够呛。load了一张图片,就不能load第二张。不仅不能load第二张。做个任何的操作都极可能out of memory。因为matlab里面的对象一般都是copy的。

所以呢,我看我得回归硬件。

用C来做传说中的榨干硬件的点滴资源

 

 

乱七八糟

这两天脾气异常暴躁

不知道是不是身体劳累的缘故

已经很久没有参加任何的教会活动

也没有读经,也没有祷告

以前老婆坐月子的时候嘉嘉再闹,我再累,我也心平气和

现在嘉嘉调皮起来我开始有些受不了

前天打了嘉嘉一下后

我发觉自己已经变成一头可怕的猛兽

圣经说爱是恒久忍耐

我却不知不觉中丧失爱的能力

为什么会这样

我该怎么办

我想我必须每天花一些时间在神上面了

 

dll crt msvcrt.dll visual studio 2005

http://www.itwriting.com/blog/?postid=261

http://kobyk.wordpress.com/2007/07/20/dynamically-linking-with-msvcrtdll-using-visual-c-2005/

nnd,花了好大劲

COM模块老是load出错

现在又体会到静态库的好处了

动态库看似依赖少了,其实依赖只不过是隐藏起来了。而且把问题从链接拖到了运行。

乱七八糟

CPU其实就是一个计算机

或者,一个程序执行器

或者,一个程序解释器

CPU定义了自身的一套语言

这套语言是所有程序的基础

和所有的语言都有相似之处

是最基本,最简单的语言

几类元素

变量,数据运算,数据移动,跳转

这三种元素可以用来描述任何的程序

函数可以由跳转来实现

函数相当于数据运算

只要有了这三样,就有了基本的语言

 

Registers

From <<Fundamentals of Computer Organization and Architecture>>

 

Registers are essentially extremely fast memory locations within the CPU that are

used to create and store the results of CPU operations and other calculations.

 

Two registers are essential in memory write and read operations: the memory data

register (MDR) and memory address register (MAR). The MDR and MAR are used

exclusively by the CPU and are not directly accessible to programmers.

 

Two main registers are involved in fetching an instruction for execution: the program

counter (PC) and the instruction register (IR). The PC is the register that contains

the address of the next instruction to be fetched. The fetched instruction is

loaded in the IR for execution. After a successful instruction fetch, the PC is updated

to point to the next instruction to be executed. In the case of a branch operation, the

PC is updated to point to the branch target instruction after the branch is resolved,

 

Condition registers, or flags, are used to maintain status information.

 

 

CPU

From <<Fundamentals of Computer Organization and Architecture>>

 

 

The primary function of the CPU is to execute a set of instructions stored in the computer’s memory. 

 

A simple CPU consists of a set of registers, an arithmetic logic unit (ALU), and a control

unit (CU).

 

 

 

The ALU provides the circuitry needed to perform the arithmetic, logical and shift operations demanded of the instruction set.

 

 

 

The control unit is the entity responsible for fetching the instruction to be executed from the main

memory and decoding and then executing it.

 

 

 

The CPU fetches instructions from memory, reads and writes data from and to

memory, and transfers data from and to input/output devices.

 

google sketchup ruby photomatch

pages = Sketchup.active_model.pages

page = pages.add_matchphoto_page photo camera

一项期待已久的特性

如果早点儿出来,当初就不用那么费力绕圈,还不方便

现在calibration可以单独写一个软件,然后导出camera的参数,再从sketchup里面load进来

有了这一项,基本上就可以整出专业的基于图像的建模工具了

以后还可以加上procedure modeling,功能就比sketchup本身的photomatch强大多了