如何在matlab中切片和存储一组多变量曲线?

如何在matlab中切片和存储一组多变量曲线?,matlab,slice,Matlab,Slice,我有一个表,有两列(x和y值)和100行(x值以一定的间隔重复) 因此,我想对可变表大小执行以下任务(仅更改行大小!): 我想确定x值的重复次数,并将此信息保存为名为n的变量。此处重复次数为5次(每个x值总共出现5次) 我想知道重复圆中x值的范围,并将此信息保存为R=高度(范围);这里的x范围是[0,20] 根据以上信息,我希望创建更小的表,其中只存在一个重复的x值 如何在matlab中实现这一点 保持安全和健康 Greta此方法使用table2array()函数将表转换为数组/矩阵以进行进一

我有一个表,有两列(x和y值)和100行(x值以一定的间隔重复)

因此,我想对可变表大小执行以下任务(仅更改行大小!):

我想确定x值的重复次数,并将此信息保存为名为n的变量。此处重复次数为5次(每个x值总共出现5次)

我想知道重复圆中x值的范围,并将此信息保存为R=高度(范围);这里的x范围是[0,20]

根据以上信息,我希望创建更小的表,其中只存在一个重复的x值

如何在matlab中实现这一点

保持安全和健康


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));