ed的数字矩阵

36视图(30天)
埃克
埃克 2023年6月12日在球队的
评论道: 埃克2023年6月13日在二三31
你好,
我有矩阵与日志文件和数据。前5列数据日志文件记录刺激表示时间(一个例子,下面的连接)。行时间和列事件。第一列日志刺激id。(不刺激= 0,刺激:1 2 3 4 5或6)第二列记录试验阶段(1 =前刺激,2 =刺激,3 = poststimulus间隔);然而刺激持续时间并不是完全相同的刺激。一些有40行41。我需要让所有通过添加缺失的刺激刺激长度相同id的刺激。例如,如果一些刺激40行和41或42行。让所有德国艾迪刺激刺激到42行id的最后刺激colomn 1和第2列任何人能帮吗?
1评论
约翰D 'Errico
约翰D 'Errico 2023年6月12日在二二13
读取该文件。
使用一个循环。

登录置评。

接受的答案

阿曼德伦巴
阿曼德伦巴 2023年6月13日在39
嗨,埃克,
我会尽量给你一个可能的解决方案,基于我所理解的阅读你的问题。
下面的代码不添加任何新行矩阵。只是修改前两列的矩阵,因此所有的刺激(第二列= = 2)最大刺激记录的长度。
如果你desidered刺激持续时间小于最大的一个,这个简单的代码将是不够的。
%读取数据
一个= readmatrix (“https://it.mathworks.com/matlabcentral/answers/uploaded_files/1409294/data%20_matrix.xlsx”);
%找到所有刺激的开始和结束(第二科勒姆= = 2)
s = regexprep (num2str ([0 (:, 2)”= = 2 0]),' ',);
StimuliIdx = [regexp(年代,“01”正则表达式(年代),“十”)');
%计算他们的持续时间
时间= diff (StimuliIdx 1 2);
%定义所需的时间
DesiredDuration = max(持续时间);
%修改前两列每个刺激具有相同的长度(大
%或等于前一个)
= 1:尺寸(StimuliIdx, 1)
(StimuliIdx(是):StimuliIdx () + DesiredDuration-1 1) = A (StimuliIdx(是),1);
(StimuliIdx(是):StimuliIdx(是)+ DesiredDuration-1, 2) = A (StimuliIdx(是),2);
结束
% writematrix (, ' data_matrix_modified.xlsx ');
我希望你觉得这有用。
最好的问候,
阿曼德
2的评论
埃克
埃克 2023年6月13日在二三31
嗨,阿曼德,非常感谢!它的工作原理!

登录置评。

更多的答案(0)

类别

找到更多的在语言基础知识帮助中心文件交换

s manbetx 845


释放

R2022a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!