【问题标题】:Matlab drawing points and show valuesMatlab绘图点和显示值
【发布时间】:2013-09-28 01:51:57
【问题描述】:

我有一个简单的情节问题。

在 x 轴上,值是 K,例如从 2 到 12,离散的。 在 y 轴上,值为 C,例如从 1 到 10,离散。

我的函数是分段的:

K 如果 K=2C,则 K+2C;

我想显示点 (K,C) 的值:

(1,1) 显示为 1 (1,2) 显示为 1 (2,1) 显示为 4 (2,2) 显示为 2 等等。

我该怎么做?

非常感谢,

卡斯帕

【问题讨论】:

    标签: matlab plot piecewise


    【解决方案1】:

    你可以使用ndgrid来创建K和C:

    [K C] = ndgrid(2:12,1:10);
    

    然后使用逻辑索引来计算单独的部分:

    z=zeros(11,10);
    ind = K>=(2*C);
    z(~ind) = K(~ind);
    z(ind) = K(ind)+2*C(ind);
    

    然后以任何你想要的方式绘制:

    surf(C,K,z);
    

    image(z);
    

    还有其他......

    【讨论】:

    • 感谢您的回答。然而,这并不是我想要的。我希望得到我所描述的。黑白 2D 绘图。干净利落。 X轴-K,从2到12,从左到右; Y axia - C,从1到10,从下到上;然后在每个 (K,C) 坐标处: (1,1) 显示值 1 (1,2) 显示值 1 (2,1) 显示值 4 (2,2) 显示值 2 等。跨度>
    • 黑白二维图是什么意思?即当您说显示值 1 时,该值是如何表示的?您在这里有“3D 数据”、K 坐标、C 坐标和值,您可以创建热图(类似于 this,仅针对不同的值使用不同的灰色阴影)。这就是你想要的吗?
    • 对不起,如果我不够清楚。是的,我的意思是黑白 2D 图。您可以将其视为“草图”。例如,在坐标:(1,1),打印数值 1,(1,2) 打印数值 1,等等。我知道热图是什么,但这不是我所追求的。谢谢。
    • 也许这会给你一个更好的主意。你所有的 Z 值都是正确的。我想在 (K,C) 'string' Z 处添加文本。 text(K,C,'Z') 为从 2 到 12 的所有 K 和从 1 到 10 的所有 C。有没有一种有效(正确)的方法来做吗? 'text' 的问题是'Z' 必须是字符串并且位置稍微偏离。它并不完全“在”点(K,C)尖锐。
    • 本质上,你想要一个表格...双击变量窗口中的 Z...或者,试试this
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-06
    • 2014-03-15
    相关资源
    最近更新 更多