MATLAB矩阵范围赋值
是否可以将范围分配给矩阵。 如果你把下面的零点矩阵看作一个“网格”来绘制:MATLAB矩阵范围赋值,matlab,matrix,plot,range,histogram,Matlab,Matrix,Plot,Range,Histogram,是否可以将范围分配给矩阵。 如果你把下面的零点矩阵看作一个“网格”来绘制: R = zeros(5,8); R = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 你能把这个矩阵当作一个网格,这样每个x轴的零点都可以看作一个范围吗?例如,R(5,1)是一个范围0-0.1秒R(5,2)是一个范围0.1-0.2秒等 “范围”概念是否也可以应用于列 这样做的目的是,我可以读取单元格数组数据
R = zeros(5,8);
R =
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
你能把这个矩阵当作一个网格,这样每个x轴的零点都可以看作一个范围吗?例如,R(5,1)
是一个范围0-0.1秒
R(5,2)
是一个范围0.1-0.2秒
等
“范围”概念是否也可以应用于列
这样做的目的是,我可以读取单元格数组数据,我已经组织到零矩阵的范围,以产生一个二维直方图
我不确定我是否理解你的问题 如果您询问是否可以将向量(例如
a=[1;2;3]
)指定为某个矩阵R=0(3,5)
中的一列,则可以通过
R(:, 1) = a;
R(:, 2) = [4;5;6];
假设您有时间
tt
和数据值val
,其中val(i)
包含时间tt(i)
的数据值。在你的例子中,你会
tt = [0.02, 0.22, 0.15, 0.08, 0.27, 0.09];
val = [0.5, 1.4, 2.5, 0.6 , 0.8, 0.3 ];
例如,现在需要表示所需时间和数据范围(增加)的向量
trange = [0, 0.1, 0.2, 0.3, Inf];
valrange = [0, 1, 2, 3, Inf];
现在创建一个大小合适的矩阵
R = zeros(length(valrange), length(trange));
只需在所有时间循环,就可以轻松填充矩阵
for i=1:length(tt)
%// We consider the pair tt(i), val(i)
%// First find out, in which time range tt(i) lies:
tind = find(trange > tt(i), 1, 'first');
%// Now find out, in which value range val(i) lies:
valind = find(valrange > val(i), 1, 'first');
%// Now we increase the corresponding matrix entry
R(valind,tind) = R(valind,tind) + 1;
end
请注意,第一列对应于
-Inf
到trange(1)
之间的时间范围,最后一列对应于trange(end-1)
和trange(end)=Inf
之间的时间范围。第一排和最后一排都一样。我不知道你想做什么。例如,您可以使用重塑(R,5*8,1)
,这将使R
的所有列连接成一个长向量。或者,重塑(R.),5*8,1)
将所有R
行连接成一个长向量。(其中“
是转置运算符)我有时间和数据。时间为0-10秒,范围为0.1。每个时间值都有一个数据值。当然,我可以只使用绘图,但我想要一个颜色密度图,因为我有大量的数据。因此,我尝试使用直方图,如果匹配范围中存在重复值,这将导致颜色与同一范围中“匹配”的数据点数量成比例。很抱歉,问题不清楚!我觉得我需要一本完整的书来描述我想做的事情,你给我们一个小例子和你想要的输出的草图。请查收附件,网格的草图将是一个矩阵谢谢你的回答,我认为我的问题不够清楚,我道歉