首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将数值向量和字符串导入MATLAB矩阵

将数值向量和字符串导入MATLAB矩阵
EN

Stack Overflow用户
提问于 2011-12-24 04:59:18
回答 1查看 184关注 0票数 1

我有以下数据结构(存储为CSV):

代码语言:javascript
运行
复制
Sub Cond Pic Vals  
s101 A pic1 [1,3,5,1,-2,5]  
s101 A pic2 [1,-2,5,0,2,1]  
s101 B pic1 [2,4,7,0,1,-3]  
s101 B pic2 [3,-1,1,1,6,1]  
s102 A pic1 [1,7,7,3,-1,5]  
s102 A pic2 [2,8,7,0,3,-4]  

...etc

我想通过遍历主题和条件来关联pic1和pic2之间的值向量。

在python中,我会将它们组织为一个字典列表,但我不确定MATLAB中的类似/最佳结构是什么。在MATLAB中导入和组织这些数据的最佳方式是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-24 06:03:39

例如,您可以这样做:

xp.txt:

代码语言:javascript
运行
复制
Sub Cond Pic Vals  
s101 A pic1 [1,3,5,1,-2,5]  
s101 A pic2 [1,-2,5,0,2,1]  
s101 B pic1 [2,4,7,0,1,-3]  
s101 B pic2 [3,-1,1,1,6,1]  
s102 A pic1 [1,7,7,3,-1,5]  
s102 A pic2 [2,8,7,0,3,-4]

matlab脚本:

代码语言:javascript
运行
复制
nValue=6; %%%%% or 90
vals=cell(1,nValue);   
[sub cond pic vals{:}]=textread('xp.txt',['%s %s %s [%f' repmat(',%f',1,nValue-1) ']'],'headerlines',1)
vals=horzcat(vals{:})
for s = unique(sub)'
  for c = unique(cond)'
     index=(strcmp(sub,s{1})&strcmp(cond,c{1}));
     display(['sub: ' s{1} '; cond: ' c{1} ])
     resu1=vals(index & strcmp(pic,'pic1'),:)
     resu2=vals(index & strcmp(pic,'pic2'),:)
     %%%% computation of the correlation
  end
end

结果:

代码语言:javascript
运行
复制
sub: s101; cond: A
resu1 =
     1     3     5     1    -2     5
resu2 =
     1    -2     5     0     2     1
sub: s101; cond: B
resu1 =
     2     4     7     0     1    -3
resu2 =
     3    -1     1     1     6     1
sub: s102; cond: A
resu1 =
     1     7     7     3    -1     5
resu2 =
     2     8     7     0     3    -4
sub: s102; cond: B
resu1 =
   Empty matrix: 0-by-6
resu2 =
   Empty matrix: 0-by-6

PS:

还有许多其他的可能性取决于你想要什么

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8620582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档