由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 关于matlab一问
相关主题
请教个排序的题目如何在binary 矩阵中检索汉明码重?
大矩阵如何转置?Python矩阵一问
c中什么矩阵库可以做初始化转置相乘相加等基本运算?Unix Multi-processor Programming
为啥matlab一直用列优先存储来存储array?请问谁用过umfpack处理数学矩阵?
探讨下FaceID怎么做得?有没有VC++下的矩阵运算的库类?
0-1矩阵的存储这个算法的复杂度是多少?
Matlab中,如何沿着某个方向读取二维矩阵中的数据问个矩阵问题
请问:稀疏矩阵运算有什么好的C++库?matlab能解决如下问题吗?
相关话题的讨论汇总
话题: 矩阵话题: matlab话题: dlmread话题: 转置话题: 元素
进入Programming版参与讨论
1 (共1页)
w*******u
发帖数: 764
1
查了好久的help都没有找到该怎么办,所以来这里请求专家们的指点。
我现在有好几个“类三角矩阵”--为什么是“类”三角矩阵:所有应该是0的项都是空
白。
i.e.第一行有一个元素(A11)
第二行有两个元素(A21,A22)
第三行有三个元素(A31,A32,A33)
...
第n行有n个元素(An1,An2,...Ann)
现在我需要把这“半个”三角矩阵补全,
option 1: 把缺失的0都补全
option 2: 把这半个矩阵的镜像投到另半边,令A1n=An1,A2n=An2....
不知道该怎么办?
现在的这半个矩阵无法输入matlab.
这些数据组是保存在.txt文件里面,copy&paste到excel也不行,列和列无法分开。
现在我唯一的方法是手动输入所有的“0”,再输入到matlab,
再转置,把转置矩阵和原矩阵相加,合成最后需要的对称矩阵。
实在是笨死了。
不知道有没有聪明一点的方法?请各位专家们不吝赐教,感激不尽!
Z****e
发帖数: 2999
2
what's your current format?
give some example bah

【在 w*******u 的大作中提到】
: 查了好久的help都没有找到该怎么办,所以来这里请求专家们的指点。
: 我现在有好几个“类三角矩阵”--为什么是“类”三角矩阵:所有应该是0的项都是空
: 白。
: i.e.第一行有一个元素(A11)
: 第二行有两个元素(A21,A22)
: 第三行有三个元素(A31,A32,A33)
: ...
: 第n行有n个元素(An1,An2,...Ann)
: 现在我需要把这“半个”三角矩阵补全,
: option 1: 把缺失的0都补全

w*******u
发帖数: 764
3
https://files.getdropbox.com/u/456906/Distance%20Matrix.txt
就是这样的一组数
在这里其实只有124行和124列
第一行为空(需要补成全都是0,或者A11=0,其余补成第一列现有数据的转置镜像)
Z****e
发帖数: 2999
4
很久没用matlab了,想了想大概思路:
matlab自动载入数据都要求矩形数据,所以你这个文件不能直接载入
可以用fopen打开,while里面fgetl按行读,最后fclose关闭,具体可以看fgetl的帮助
对于每一行,可以用sscanf转换成数组,因为默认结果是列向量,所以要转置一下,去
掉第一个可以用slicing: A=A(:,2:N),其中N要靠size函数得到;然后直接用A(125)=0
可以得到自动补0的1x125行向量
然后用M(i,:)=A可以把行向量填进矩阵中
最后会得到一个方的下三角矩阵,再A=A+tril(A,-1)'就行了

【在 w*******u 的大作中提到】
: https://files.getdropbox.com/u/456906/Distance%20Matrix.txt
: 就是这样的一组数
: 在这里其实只有124行和124列
: 第一行为空(需要补成全都是0,或者A11=0,其余补成第一列现有数据的转置镜像)

t****t
发帖数: 6806
5
挺美好的文件被你们搞复杂了
直接
a=textread('Distance Matrix.txt');
搞定

=0

【在 Z****e 的大作中提到】
: 很久没用matlab了,想了想大概思路:
: matlab自动载入数据都要求矩形数据,所以你这个文件不能直接载入
: 可以用fopen打开,while里面fgetl按行读,最后fclose关闭,具体可以看fgetl的帮助
: 对于每一行,可以用sscanf转换成数组,因为默认结果是列向量,所以要转置一下,去
: 掉第一个可以用slicing: A=A(:,2:N),其中N要靠size函数得到;然后直接用A(125)=0
: 可以得到自动补0的1x125行向量
: 然后用M(i,:)=A可以把行向量填进矩阵中
: 最后会得到一个方的下三角矩阵,再A=A+tril(A,-1)'就行了

Z****e
发帖数: 2999
6
没见过这函数,哈哈哈

【在 t****t 的大作中提到】
: 挺美好的文件被你们搞复杂了
: 直接
: a=textread('Distance Matrix.txt');
: 搞定
:
: =0

N**D
发帖数: 10322
7
perl

【在 w*******u 的大作中提到】
: 查了好久的help都没有找到该怎么办,所以来这里请求专家们的指点。
: 我现在有好几个“类三角矩阵”--为什么是“类”三角矩阵:所有应该是0的项都是空
: 白。
: i.e.第一行有一个元素(A11)
: 第二行有两个元素(A21,A22)
: 第三行有三个元素(A31,A32,A33)
: ...
: 第n行有n个元素(An1,An2,...Ann)
: 现在我需要把这“半个”三角矩阵补全,
: option 1: 把缺失的0都补全

d****e
发帖数: 251
8
dlmread will do the job of "option 1"
dist_matrix = dlmread('filename') % by default the delimiter is whitespace
% ignore first column
dist_matrix = dlmread('filename',' ',0,1)

【在 w*******u 的大作中提到】
: 查了好久的help都没有找到该怎么办,所以来这里请求专家们的指点。
: 我现在有好几个“类三角矩阵”--为什么是“类”三角矩阵:所有应该是0的项都是空
: 白。
: i.e.第一行有一个元素(A11)
: 第二行有两个元素(A21,A22)
: 第三行有三个元素(A31,A32,A33)
: ...
: 第n行有n个元素(An1,An2,...Ann)
: 现在我需要把这“半个”三角矩阵补全,
: option 1: 把缺失的0都补全

t****t
发帖数: 6806
9
那个处理大文件会很慢的
textread的后端是编译过的, 快得多

【在 d****e 的大作中提到】
: dlmread will do the job of "option 1"
: dist_matrix = dlmread('filename') % by default the delimiter is whitespace
: % ignore first column
: dist_matrix = dlmread('filename',' ',0,1)

d****e
发帖数: 251
10
textread doesn't fill empty fields with zeros in octave.
I am not sure about Matlab.

【在 t****t 的大作中提到】
: 那个处理大文件会很慢的
: textread的后端是编译过的, 快得多

相关主题
0-1矩阵的存储如何在binary 矩阵中检索汉明码重?
Matlab中,如何沿着某个方向读取二维矩阵中的数据Python矩阵一问
请问:稀疏矩阵运算有什么好的C++库?Unix Multi-processor Programming
进入Programming版参与讨论
w*******u
发帖数: 764
11
好牛!赞!谢谢~

【在 t****t 的大作中提到】
: 挺美好的文件被你们搞复杂了
: 直接
: a=textread('Distance Matrix.txt');
: 搞定
:
: =0

w*******u
发帖数: 764
12
啥意思啊?软件的名字吗?:)

【在 N**D 的大作中提到】
: perl
w*******u
发帖数: 764
13
非常谢谢!:)

【在 d****e 的大作中提到】
: dlmread will do the job of "option 1"
: dist_matrix = dlmread('filename') % by default the delimiter is whitespace
: % ignore first column
: dist_matrix = dlmread('filename',' ',0,1)

w*******u
发帖数: 764
14
是的,这个命令好快,呵呵

【在 t****t 的大作中提到】
: 那个处理大文件会很慢的
: textread的后端是编译过的, 快得多

w*******u
发帖数: 764
15
it does in matlab :)

【在 d****e 的大作中提到】
: textread doesn't fill empty fields with zeros in octave.
: I am not sure about Matlab.

1 (共1页)
进入Programming版参与讨论
相关主题
matlab能解决如下问题吗?探讨下FaceID怎么做得?
请教如何在VC6下面安装gsl?0-1矩阵的存储
[合集] 请问C 里面有什么针对矩阵运算的库吗?Matlab中,如何沿着某个方向读取二维矩阵中的数据
[合集] 请问VC++里面有自带的矩阵运算的库函数吗?请问:稀疏矩阵运算有什么好的C++库?
请教个排序的题目如何在binary 矩阵中检索汉明码重?
大矩阵如何转置?Python矩阵一问
c中什么矩阵库可以做初始化转置相乘相加等基本运算?Unix Multi-processor Programming
为啥matlab一直用列优先存储来存储array?请问谁用过umfpack处理数学矩阵?
相关话题的讨论汇总
话题: 矩阵话题: matlab话题: dlmread话题: 转置话题: 元素