Matlab中的指示矩阵

发布于 2024-11-09 12:27:21 字数 341 浏览 0 评论 0原文

在 matlab 中,我有一个名为 Label 的双数据类型变量,尺寸为 1211 x 1

我想创建一个 IndicatorMatrix(6 列),这样如果 Label 变量中的一行是 34 ,那么 Label 变量中的相应行是 34 strong>IndicatorMatrix 应为0 0 1 1 0 0

我的意思是指标矩阵的 1 @ 3 和第四列。

In matlab, I have a double datatype variable named Label with dimension 1211 x 1.

I would like to create a IndicatorMatrix(6 columns) such that if a row in the Label variable is 34 then the corresponding row in the IndicatorMatrix should be 0 0 1 1 0 0.

I mean 1 @ 3 and 4th column of Indicator matrix.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

尹雨沫 2024-11-16 12:27:21

x 为 1211x1 矩阵(Label),令 im (IndicatorMatrix) 为您要创建的矩阵。这样做:

h = size(x,1);
im = [zeros(h, 2), repmat(x == 34, 1, 2), zeros(h, 2)];

这将创建一个矩阵,该矩阵是一个具有 2 列和高度 h 的零矩阵的水平串联,然后是 x == 34 的布尔矩阵(其中 x 为 34 时为 1,其他位置为 0)水平重复 2 次一次是垂直的,然后是另一个零矩阵。

请注意,在您的情况下,我们可以将 h 替换为 1211,但我尝试编写更通用的代码。

Let x be the 1211x1 matrix (Label), and let im (IndicatorMatrix) be the matrix you wish to create. Do:

h = size(x,1);
im = [zeros(h, 2), repmat(x == 34, 1, 2), zeros(h, 2)];

This creates a matrix which is a horizontal concatentation of a zero matrix with 2 columns and height h, then a boolean matrix of x == 34 (which has 1 where x was 34, and zero in other places) repeated 2 times horizontally and once vertically, and then again another zero matrix.

Note that in your case we could have replaces h by 1211, but I tried to write more generic code.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文