matlab - Matlab转置矩阵反转图
问题描述
我使用网格网格构建的两个矩阵作为基础绘制一些东西。
[U,V] = meshgrid(Y,X);
在一个函数中,我构建了另一对矩阵
[A,B] = function(input)
因此我绘制
plot((U((length(U)+1)/2,:)),A((length(U)+1)/2,:));
plot((V((length(U)+1)/2,:)),B((length(U)+1)/2,:));
如果 U 和 V 属于这种类型:
U= 1 2 3 4 V= 1 1 1 1
1 2 3 4 2 2 2 2
1 2 3 4 3 3 3 3
... ...
我想修改 A 以获得相同的情节但具有U
这样的转置含义
U= 1 1 1 1 V= 1 2 3 4
2 2 2 2 1 2 3 4
3 3 3 3 1 2 3 4
... ...
意味着现在U
沿行具有固定值并沿列更改,我希望沿列具有固定值并沿行更改,而数学上的方法是转置 U。
有没有另一种方法可以做到这一点,或者我怎样才能修改 A 以获得相同的情节?当然,转置 A 是行不通的。A
是一个像四个输入参数(函数的输入)的总和一样的构建 A 让我们说随机值,但重要的是中心行和列大约为零,就像这样
A= -1.7 -1.6 ... 0 ... 1.6 1.7
-1.6 -1.5 ... 0 ... 1.5 1.6
... 0
0 0 0 0 0
...
1.6 1.5 ... 0 ... -1.5 -1.6
1.7 1.6 ... 0 ... -1.6 -1.7
U 和 V 属于这种
转置 U 和 V 后得到相同的图是这样的,
U=U'; V=V';
plot((V((length(U)+1)/2,:)),A((length(U)+1)/2,:));
plot((U((length(U)+1)/2,:)),B((length(U)+1)/2,:));
但我不能使用它,因为之后我将 A 的值写入文件中。
解决方案
目前还不清楚你想要什么。
您的矩阵 U 和 V 是网格网格。
U= 1 2 3 4 V= 1 1 1 1
1 2 3 4 2 2 2 2
1 2 3 4 3 3 3 3
你有矩阵 A 和 B 对应于这个矩阵 U 和 V。
例子:
A= -1.7 -1.6 -1.5 -1.4 B= -2.7 -2.6 -2.5 -2.4
-1.6 -1.5 -1.4 -1.3 -2.6 -2.5 -2.4 -2.3
-1.5 -1.4 -1.3 -1.2 -2.5 -2.4 -2.3 -2.2
现在您要转置 U 和 V:
U= 1 1 1 1 V= 1 2 3 4
2 2 2 2 1 2 3 4
3 3 3 3 1 2 3 4
所以现在如果我们在矩阵中选择一个位置。例如 (1, 3) 将关联一个 U 值 (1) 一个 V 值 (3)、一个 A 值 (-1.5) 和一个 B 值 (-2.5)
如果您转置 U 和 V,则位置 (1,3) 将具有值 U,V,A,B = (3, 1, -1.5, -2.5)。如您所见,A 和 B 的值映射到 U 和 V 的不同值(基本上是因为您转置了 U 和 V)。
因此,转置 A 和 B 您将再次获得正确的映射。
编辑:
您基本上是在 X 轴上绘制 V,在 Y 轴上绘制 A。这基本上意味着 A 的每个元素都与 V 的一个元素相关联以形成一个二维坐标。
如果现在转置 V,X 元素的排列方式将有所不同,因此您必须重新排列 A 的元素,以便映射保持不变。
这意味着您需要对两个矩阵执行相同的操作以保持映射不变,因为您正在转置 V,因此您还需要转置 A。
我要求提供一个数字示例,您提供的示例不清楚。举例说明您目前拥有什么(矩阵+绘图)以及您想要实现什么(矩阵和绘图)。只需用一个小的 3x3 矩阵来做这个例子,我们就会看到你想要做什么。
推荐阅读
- c - C中的多个矩阵运算
- java - 在 Gradle Jitpack 项目中构建 Java JNI
- android - 滚动时 FloatActionButton 不隐藏
- html - 如果重量太大或太小,我的代码不会发出警报
- perl - 如何为模具处理程序提供更多上下文?
- android - 如何避免使用@Overloads 重载 Main_activity OnCreate?
- python - 在动态树中使用 minidom 获取标签值
- java - 设置 calendar.day_of_month 就是设置 calendar.year
- c++ - 使用可见性属性(没有 __declspec(dllexport))时,Clang 可以生成导入库吗?
- r - 如何根据 R 中的行值在 data.frame 中创建新列?