如何在matlab中切片和存储一组多变量曲线?
我有一个表,有两列(x和y值)和100行(x值以一定的间隔重复) 因此,我想对可变表大小执行以下任务(仅更改行大小!): 我想确定x值的重复次数,并将此信息保存为名为n的变量。此处重复次数为5次(每个x值总共出现5次) 我想知道重复圆中x值的范围,并将此信息保存为R=高度(范围);这里的x范围是[0,20] 根据以上信息,我希望创建更小的表,其中只存在一个重复的x值 如何在matlab中实现这一点 保持安全和健康如何在matlab中切片和存储一组多变量曲线?,matlab,slice,Matlab,Slice,我有一个表,有两列(x和y值)和100行(x值以一定的间隔重复) 因此,我想对可变表大小执行以下任务(仅更改行大小!): 我想确定x值的重复次数,并将此信息保存为名为n的变量。此处重复次数为5次(每个x值总共出现5次) 我想知道重复圆中x值的范围,并将此信息保存为R=高度(范围);这里的x范围是[0,20] 根据以上信息,我希望创建更小的表,其中只存在一个重复的x值 如何在matlab中实现这一点 保持安全和健康 Greta此方法使用table2array()函数将表转换为数组/矩阵以进行进一
Greta此方法使用
table2array()
函数将表
转换为数组/矩阵以进行进一步处理。要查找x值中的重复模式,可使用unique()
函数检索重复多次的向量。值的范围可以通过使用min()
和max()
函数并将值串联在一个2元素数组中来计算。然后可以使用assignin()
函数创建一组较小的表格,根据x值重复来分隔y值
用于测试脚本的表:
脚本:
你的问题不清楚
M
是表还是矩阵?M
包含什么?直线方程的变量值a*x+b
?是NUM==n
R_x
应根据什么自动检测?此外,将表/矩阵拆分为n
变量通常不是一个好主意,因为您将无法再索引表/矩阵来检索有用的信息。为什么要这样做?很抱歉,错误的措辞会针对集合和数组中的x
值编辑问题。@MichealTr7感谢您的详细解释。尝试了这个代码,它的工作。再次感谢您的帮助@我投你一票。然而,我得到一个信息,投票被记录下来了,但由于缺乏声誉,没有公开展示。
x = repmat((1:20).',[5 1]);
y = rand(100,1);
Table = array2table([x y]);
Array = table2array(Table);
Unique_X_Values = unique(Array(:,1));
Number_Of_Repetitions = length(Array)/length(Unique_X_Values);
Range = [min(Array(:,1)) max(Array(:,1))];
Y_Reshaped = reshape(Array(:,2),[numel(Array(:,2))/Number_Of_Repetitions Number_Of_Repetitions]);
for Column_Index = 1: Number_Of_Repetitions
Variable_Name = ['Small_Tables_' num2str(Column_Index)];
assignin('base',Variable_Name,array2table(Y_Reshaped(:,Column_Index)));
eval(Variable_Name);
end
fprintf("Number of repetitions: %d\n",Number_Of_Repetitions);
fprintf("Range: [%d,%d]\n",Range(1),Range(2));