在MatLab中绘制结构数组 [英] Plotting structure array in Matlab

查看:17
本文介绍了在MatLab中绘制结构数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在matlab中有一个结构数组(98*1):

现在我正在尝试使用两个特定的字段(例如x和y)来绘制图形。X和y的值出现在这98行中的每一行上。尝试使用以下命令绘制时出错。

plot(ans{1:98,1}.x,ans{1:98,1}.y)
应为大括号或点索引表达式的一个输出,但 有98个结果。

仅(行1)绘制错误(ANS{1:98,1}.x,ANS{1:98,1}.y)

我需要帮助才能知道我做错了什么,以及如何更正它。

推荐答案

您可能需要cellfun使用anonymous function(或for循环)从每个单元格的内容中提取xy字段:

plot(cellfun(@(t) t.x, ans(1:98,1)), cellfun(@(t) t.y, ans(1:98,1)))

注意:

  • ()使用索引而不是{},因为cellfun需要一个单元格数组作为输入(更多关于索引单元格数组的信息here)。此外,如果要处理整个单元格数组,可以完全跳过索引,只使用

    plot(cellfun(@(t) t.x, ans), cellfun(@(t) t.y, ans))
    
  • 两个匿名函数@(t) t.x@(t) t.y作用于每个单元格的内容,即标量结构,并分别从中提取xy字段。默认情况下,cellfun将结果打包到标准(数字)数组中。

如果您的数据以一种更方便的方式进行组织,比如包含字段xy的98×1结构数组,或者更好地使用两个数值向量xy

这篇关于在MatLab中绘制结构数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆