首页 > 解决方案 > 在循环中使用 surf 和来自 struct 的数据

问题描述

我正在尝试在冲浪图上绘制一些数据。数据存储在结构中。现在我可以使用循环将其绘制在 2D 图上,但我最终想要的是使用surf函数将颜色渐变分配为同一循环中第三个变量的函数。

这是我现在用于xy坐标的 2D 图的代码。在这种情况下,每条线都有不同的长度(例如轨迹 x1y1 比 x2y2 长)。

结果结构可以在这里找到DATA

for i1 = 1:2

    f = figure();
    if i1 == 1
        figName = 'Plot 1';
    elseif i1 == 2
        figName = 'Plot 2';
    end;
    set(f, 'Name', figName);

    hold all;
    for i2 = 1:nr_trajectories
        if ~isempty(results.x_before{i2, i1})
            plot([results.x_before{i2, i1}; results.x_ROI{i2, i1}; results.x_after{i2,i1}],...
                [results.y_before{i2, i1}; results.y_ROI{i2, i1}; results.y_after{i2, i1}]);

        end;
    end;

end;

我在以下上下文中使用surf (对于其他东西)来获得一些线图( x,y),其颜色渐变线性映射到变量v

    x = rand(1000,1);
    y = rand(1000,1);
    v = rand(1000,1);

    figure;
    surf([x(:) x(:)], [y(:) y(:)], [v(:) v(:)], ...  
    'FaceColor', 'none', ...    
    'EdgeColor', 'interp', ...  
    'LineWidth', 3);            
    view(2);                    

我的目标是在第一段代码的第二个for 循环中使用这个冲浪代码。

任何想法我该怎么做?非常欢迎任何输入:)

干杯

标签: matlabfor-loopplotmatlab-figure

解决方案


推荐阅读