如何绘制 NxN 圆数组?

2024-04-26

我想绘制一个 NxN 的圆数组。为了形象化,我附上了我想要实现的目标的图像。我是 MatlLab 的新手,所以我尝试先绘制一个圆,下面是示例代码:

n = 2^10;                   % size of mask
M = zeros(n);
I = 1:n;
x = I - n/2;                % mask x - coordinates
y = n/2 - I;                % mask y - coordinates
[X,Y] = meshgrid(x,y);      % create 2-D mask grid
R = 200;                     % aperture radius
A = (X.^2 + Y.^2 <= R^2);   % Circular aperture of radius R
M(A) = 1;                   % set mask elements inside aperture to 1
imagesc(M)                  % plot mask
axis image

我真的不知道如何绘制二维圆数组。两个圆之间的距离是两个半径。我的研究需要这个。希望任何人都可以提供帮助。4 x 4 的圆数组。 https://i.stack.imgur.com/ahtWR.jpg


如果你只想绘制一组圆,你可以使用长方形 https://it.mathworks.com/help/matlab/ref/rectangle.html循环内的函数

如果在通话中rectangle你设置了Curvature财产给1它将被绘制为圆形(请参阅文档)。

在循环中,您必须通过定义其来正确设置每个矩形(圆形)的位置lower left坐标及其width and height.

定义为n圆圈的数量和d它们的直径,你可以计算出lower left坐标为:

px=linspace(0,d*(nc-1),nc)
py=linspace(0,d*(nr-1),nr)

黑色背景可以通过设置轴的颜色或绘制另一个矩形来获得。

然后你可以设置xlim and ylim以适应外部矩形。

您还可以通过设置 ○Visible 使 axex 不可见property tooff`.

Edit #1

更新代码以允许绘制用户定义数量的圆圈(设置行数和列数)

% Define the number of circles
% Number of rows
nr=8
% NUmber of column
nc=8
% Define the diameter of the circle
d=6
% Create an axex and set hold to on
ax=axes
hold on
% Evalaute the lower left position of each circle
px=linspace(0,d*(nc-1),nc)
py=linspace(0,d*(nr-1),nr)

% Plot the background rectangle
rectangle('Position',[px(1),py(1),d*nc,d*nr],'Curvature',[0 0],'facecolor','k')
% Plot all the circles
for i=1:length(px)
   for j=1:length(py)
      rectangle('Position',[px(i) py(j) d d],'Curvature',1,'facecolor','w')
   end
end
% Set the aspect ratio of the axes
daspect([1 1 1])
% Set the XLim and YLim
xlim([px(1) d*nc])
ylim([py(1) d*nr])
% Make the axes invisible
ax.Visible='off'

Edit #2

解决OP评论的替代解决方案:

如果我想让轴固定,假设我想要一个 1024 x 1024 的网格,(图像大小与圆半径无关)如何将其合并到代码中?

如果你想使用固定的(1024 x 1024)绘制圆圈的掩码,从您在问题中发布的 cde 开始,您可以简单地执行以下操作:

  • 定义要在 a 上绘制的圆圈数(1024 x 1024)他们可以是面具2, 4, 8, ...
  • 定义一个仅包含一个圆的基本蒙版
  • 识别该圆内的点并将它们设置为1
  • 复制(使用函数repmat http://it.mathworks.com/help/matlab/ref/repmat.html根据要绘制的圆圈数量的基本掩模

根据您的代码,实现可能是:

% Define the number of circles to be plotted
% on a (1024 x 1024) mask they can be 2, 4, 8, ...
n_circles=4
% Define the size of the basic mask
n0 = (2^10)/n_circles;
% Initialize the basic mask
M0 = zeros(n0);
% Define the x and y coordinates of the basic mask
I = 1:n0;
x = I - n0/2;
y = n0/2 - I;
% Create the mask
[X,Y] = meshgrid(x,y);
% Define the radius of the basic circle
R = n0/2;
% Get the indices of the points insiede the basic circle
A = (X.^2 + Y.^2 <= R^2);
% Set basic mask
M0(A) = 1;
% Open a FIgure
figure
% Replicate the basic mask accoding to the numner of circles to be plotted
M=repmat(M0,n_circles,n_circles);
% Display the mask
imagesc(M)
% Set the axes aspect ratio
daspect([1 1 1])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何绘制 NxN 圆数组? 的相关文章

  • 增加 .fig 文件中的散点标记大小

    我有一个图形文件 scatter fig 该图有许多使用 scatter 的散点绘图仪 现在我只有这个无花果文件 我需要增加所有散点的标记大小 手动尝试过 但非常困难 有没有办法我可以做类似的事情 H 图形句柄 s 点 h 设置 s 标记大
  • Excel - 使用 FILTERXML 从字符串中提取子字符串

    Background 最近 我一直在尝试更熟悉将分隔字符串更改为 XML 以使用 Excel 进行解析的概念FILTERXML https support microsoft com en us office filterxml funct
  • 重新评估仅依赖于可观察数组的淘汰赛计算

    我的 Appmodel 由一系列可观察的评论组成 self comments ko observableArray Default Value is an empty array Here comes some code to initia
  • Matlab 的快速 JSON 解析器

    您知道 Matlab 中有一个非常快速的 JSON 解析器吗 目前我正在使用JSONlab http www mathworks com matlabcentral fileexchange 33381 jsonlab a toolbox
  • JS中如何使用数组过滤对象数组? [复制]

    这个问题在这里已经有答案了 我希望你今天过得愉快 这非常简单 我有一个对象数组 我想在另一个数组的帮助下过滤掉它 场景如下图所示 var ob array a 1 col 2 abc a 2 col 2 xyz a 3 col 2 jkl
  • 图像增强 - 从书写中清除给定图像

    我需要清理这张照片 删除 清理我 的字样并使其变亮 作为图像处理课程作业的一部分 我可能会使用 matlab 函数 ginput 来查找图像中的特定点 当然 在脚本中您应该对所需的坐标进行硬编码 您可以使用 conv2 fft2 ifft2
  • 如何使用Matlab提高PSD的分辨率

    我有音频信号 我用 Matlab 读取该信号 并使用 pwelch 获取其 PSD 这是我正在使用的代码 x Fs audioread audioFile wav x x 1 mono xPSD f pwelch x hamming 512
  • Wordpress 数组显示特定类别的帖子并显示帖子摘录和功能

    大家好 正在寻找 WordPress 帮助 我需要放置一个简单的查询 数组来显示来自某只猫的帖子 例如 新闻 其中将包含帖子特色图像 有人可以帮忙吗 Gary Try this a href title a
  • 列表项未正确删除(React)

    如果我的笔记应用程序能提供一些帮助 我将不胜感激 假设我的笔记列表中有 3 个笔记 我想删除列表顶部的注释 无论我尝试删除哪一个 总是首先删除列表最底部的注释 我检查了 React 控制台 应用程序组件状态中的注释数组表明它已正确删除 但从
  • MATLAB 中的抗锯齿线和标记

    您好 我在 MATLAB 中有一张图像 我希望这条线是平滑的 看看从 0 4 到 0 8 的线 这太可怕了 当在图中使用 LineSmoothing on 运算符时 我得到了这个 我在线条上做得很好 但它也使标记变得平滑 而且它们太可怕了
  • R 将 data.frame 转换为 json

    我正在尝试将 data frame 转换为 json 格式 我的 data frame 具有以下结构 a lt rep c Mario Luigi each 3 b lt sample 34 57 size length a df lt d
  • C 中的数组初始化

    我对以下代码有疑问 int main int array1 1 2 3 4 5 error in c warning in c int array2 1 2 3 4 5 int array3 5 1 2 3 4 5 这段代码在第 3 行给出
  • 使用 python 在网络上部署 matlab 应用程序

    您好 我想使用 python 在网络上部署 matlab 应用程序 有没有办法做到这一点 我已按照数学工作网站上的文档将我的应用程序转换为 jar 文件 java 类 有人能指出我前进的正确方向吗 事实上 您的 Matlab 代码打包为 J
  • 如何选择部分密集数据集的均匀分布子集?

    P是一个 n d 矩阵 持有nd 维样本 P某些地区的密度是其他地区的几倍 我想选择一个子集P其中任意样本对之间的距离大于d0 并且我需要将其传播到整个区域 所有样本都具有相同的优先级 无需优化任何内容 例如覆盖面积或成对距离之和 这是执行
  • mongoDB 对嵌套对象数组的聚合查找

    我有一个如下所示的集合 但我无法执行 lookup 并按开始时的方式返回它 但包含填充的字段 我已经对我想要填充的字段发表了评论 代理 missions clients client title Tourn e libre agent 5d
  • 使用加权概率和值查找数组中的项目

    上周我正在做的一个简单程序遇到了一些问题 这里有人帮助了我 现在我遇到了另一个问题 我目前有这个代码 var findItem function desiredItem var items item rusty nail probabili
  • Excel函数:引用单元格中的数组

    我在单元格 A1 中有一个数组 通过 A1 G6 J6 aa b ccc 1 现在我想将单元格 A1 用于 B1 中的数组公式 基本上B1应该是 B1 SUMPRODUKT C6 C12 B6 B12 G6 J6 但我不想直接引用 G6 J
  • matlab矩阵中求子矩阵的通用方法

    我正在寻找一种 好 方法来在更大的矩阵 任意维数 中找到矩阵 模式 Example total rand 3 4 5 sub total 2 3 1 3 3 4 现在我希望这样的事情发生 loc matrixFind total sub 在
  • 过滤(搜索和替换)InputStream 中的字节数组

    我有一个 InputStream 它将 html 文件作为输入参数 我必须从输入流中获取字节 我有一个字符串 XYZ 我想将此字符串转换为字节格式 并检查从 InputStream 获得的字节序列中是否存在与该字符串匹配的字符串 如果有的话
  • opencv中矩阵的超快中值(与matlab一样快)

    我正在 openCV 中编写一些代码 想要找到一个非常大的矩阵数组 单通道灰度 浮点数 的中值 我尝试了几种方法 例如对数组进行排序 使用 std sort 和选择中间条目 但与 matlab 中的中值函数相比 它非常慢 准确地说 在 ma

随机推荐

  • 将带有 UIElement 的 FlowDocument 导出为 rtf

    我正在尝试导出一个FlowDocument其中包含一个 rtf 网格 我使用了以下代码 using FileStream fs new FileStream C demo rtf FileMode OpenOrCreate FileAcce
  • 我应该在 Uber 应用程序中放置什么重定向 URL?

    我正在阅读 Uber 的 sdk api 文档 但我是菜鸟 我不知道redirectURL 应该是什么 这是 Uber 提供的给定网址吗 因为我找不到它 或者是由应用程序开发人员部署自己的服务器 本地计算机定制的网页的 URL 如果是的话我
  • json_encode 可以触发 catch 块吗? [复制]

    这个问题在这里已经有答案了 这可能是一个非常简单的问题 但我找不到任何相关信息 我使用的系统聚合了来自不同来源的大量数据 然后将这些数据存储在数据库中 在大多数情况下 系统工作正常 但有时我们会遇到一个问题 即数据可能具有我们的系统不喜欢的
  • 使用 Spring Data 进行不区分大小写的排序

    如何使用 Spring data Pageable 进行不区分大小写的排序 我的存储库中有这个方法 public interface ItemRepository extends QueryDslPredicateExecutor
  • 使用类方法作为 celery 任务

    我正在尝试使用类的方法作为 django celery 任务 并使用 task 装饰器对其进行标记 描述了同样的情况here https stackoverflow com questions 8846489 celery python o
  • viewForHeaderInSection 的框架始终大小相同

    UIView tableView UITableView tableView viewForHeaderInSection NSInteger section if section 0 UIView view UIView alloc in
  • 在Python中分配空值或字符串

    我想了解分配空值和空输出之间是否有区别 如下所示 1 gt 像这样分配一个值 string 2 gt 作为输出返回空值 string abcd str1 str2 split 换句话说 1 gt 中的 string 和2 gt 中的 str
  • 检查是否有任何输入元素处于焦点

    我有一个 jquery 脚本 当按下键盘上的任意键时 它会显示一个 div 我想向脚本添加一个条件 仅当页面上没有其他输入区域 文本区域或文本字段 处于焦点时才运行脚本 这样您就可以在页面的其余部分实际键入内容 而无需显示 div docu
  • 如何在 Linux 中离线安装 vscode-server [重复]

    这个问题在这里已经有答案了 我正在尝试安装 VScode 远程 ssh 扩展 但我的远程主机无法连接到互联网 因此无法下载软件 所以我收到了一些类似的错误消息 SSH Resolver called for ssh remote kf SS
  • java与maven和eclipse中的clojure混合

    我创建了一个示例多语言程序 我有一个用java实现的传感器和一个机器人 以及用clojure实现的AI 我无法正确连接maven src main java clojuretest DistanceSensor java AI clj us
  • NiFi 如何将 InvokeHTTP 处理器与 SOAP 结合使用

    我看到其他人已经能够使其发挥作用 但是我无法找到足够的详细信息来解释他们如何实现这一目标 以便我能够使其发挥作用 This guy http apache nifi developer list 39713 n7 nabble com SO
  • 是否存在具有单个强所有者和多个弱引用的共享指针?

    我正在寻找类似于的智能指针Arc Rc只不过它不允许共享所有权 我想要尽可能多的rc Weak我需要的参考资料 但我只想one强引用 又称所有者 我想通过类型系统来强制执行这一点 Arc Rc可以克隆 并且可以在多个地方拥有它们 滚动我自己
  • 如果在 Application_Start 中抛出未处理的异常会发生什么?

    是否会针对下一个请求再次运行 Application Start 方法 它是否取决于 ASP NET 版本 托管服务器版本和 或其他上下文 我试图确定在那里加载关键程序集是否是一件好事 例如 对于整个应用程序的功能是否至关重要的数据访问组件
  • filehelpers - 解析可变行长度

    我必须解析 C a CSV文件 具有变量 宽度 和 2 行标题信息 第一行是名称 第二行是单位 数据如下 示例1 CSV timestamp NAME 1 NAME 2 NAME 3 NAME 4 ms unit 1 unit 2 unit
  • 设置 xamarin studio 以与 PCL 和 MVVMCross 配合使用

    我真的很喜欢 Xamarin Studio 并且正在寻找一个模板解决方案来开始使用 MvvmCross 开发跨设备应用程序 但我找不到如何将项目设置为与 Xamarin Studio 一起使用 PCL 和 MvvmCross 如果有人能给我
  • 在 C++ 中求和 1<<2 和 1<<3 时出现奇怪的输出

    所以我只是尝试用 C 进行一些位操作 这是我尝试过的 int a 1 lt lt 2 cout lt
  • XML 签名中的“SignatureMethod”算法与“DigestMethod”算法

    如果我们以下面的 Signature 元素为例
  • 谷歌地理编码 API 不如使用地址的谷歌地图准确

    我有很多例子 其中谷歌地图返回确切的位置 而地理编码无法找到精确的匹配 并且仅提供紧密匹配的纬度 经度 这对我的目的没有好处 例如 谷歌地图中的 1729 State Road 8 auburn IN 46706 将我精确地定位到了沃尔玛配
  • 枚举是单数还是复数?

    枚举时使用单数还是复数 我认为声明中使用复数最有意义 enum Weekdays Monday Tuesday Wednesday Thursday Friday Saturday Sunday 但我认为在使用类型时使用单数更有意义 例如
  • 如何绘制 NxN 圆数组?

    我想绘制一个 NxN 的圆数组 为了形象化 我附上了我想要实现的目标的图像 我是 MatlLab 的新手 所以我尝试先绘制一个圆 下面是示例代码 n 2 10 size of mask M zeros n I 1 n x I n 2 mas