在MATLAB中,我试图构建一个for循环以绘制 using (AmazonCloudWatchLogsClient client = new AmazonCloudWatchLogsClient("xxx", "xxx", "xx-xxxx-2"))
{
var request = new FilterLogEventsRequest()
{
LogGroupName = GroupName,
LogStreamNames = new List<string>() { StreamName }
};
Task<FilterLogEventsResponse> response = client.FilterLogEventsAsync(request);
response.Wait();
if (null != response.Result && null != response.Result.Events)
result = response.Result.Events.Count;
}
下标对,例如x,y
和x1,y1, x2,y2
。目标是for循环将下标传递给x和y并绘制3个数字。
这是代码:
x3,y3
但是,我遇到一个错误。那么,如何使用for循环对要绘制的数据进行下标呢?
答案 0 :(得分:5)
x(1)
不能计算为x1
,依此类推。动态变量会导致类似您的问题。不要首先创建它们。如果您的数据大小相同,则使用ND矩阵,否则使用单元格数组/结构。
x = rand(10,1,3);
y = rand(10,1,3);
for k = 1:3
figure;
plot(x(:,:,k),y(:,:,k));
end
答案 1 :(得分:3)
啊,我明白了。正如评论中指出的那样,不要那样做。更好的方法是(假设所有变量的大小都相同):
X = rand(10,3);
Y = rand(10,3);
for k=1:size(X,2)
figure
plot(X(:,k),Y(:,k)) % creates 3 different figures
end