ed的数字矩阵
37视图(30天)
显示旧的评论
你好,
我有矩阵与日志文件和数据。前5列数据日志文件记录刺激表示时间(一个例子,下面的连接)。行时间和列事件。第一列日志刺激id。(不刺激= 0,刺激:1 2 3 4 5或6)第二列记录试验阶段(1 =前刺激,2 =刺激,3 = poststimulus间隔);然而刺激持续时间并不是完全相同的刺激。一些有40行41。我需要让所有通过添加缺失的刺激刺激长度相同id的刺激。例如,如果一些刺激40行和41或42行。让所有德国艾迪刺激刺激到42行id的最后刺激colomn 1和第2列任何人能帮吗?
接受的答案
阿曼德伦巴
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 ');
我希望你觉得这有用。
最好的问候,
阿曼德