小编Ras*_*hid的帖子

使用MATLAB进行文本动画

我的简化问题是在3D绘图上为一些文本设置动画.

我有一个立方体,

vert = [1 1 0;0 1 0;0 1 1;1 1 1;0 0 1;1 0 1;1 0 0;0 0 0];
fac =  [1 2 3 4; 4 3 5 6; 6 7 8 5; 1 2 8 7; 6 7 1 4; 2 3 5 8];
patch('Faces',fac,'Vertices',vert,'FaceColor',[.8 .5 .2]); 
axis([0, 1, 0, 1, 0, 1]);
axis equal
axis off
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

有可能得到这样的东西吗?

在此输入图像描述

使用text没有帮助(看起来很假!),

谢谢,

3d matlab animation text image

10
推荐指数
2
解决办法
2229
查看次数

如何使findpeak函数检测负峰而不是正峰

我想知道如何使findpeak函数检测负峰而不是正峰,它检测下图所示的红色峰,而我需要检测蓝色峰..有什么想法吗?

非常感谢。

在此处输入图片说明

arrays matlab

7
推荐指数
1
解决办法
6684
查看次数

MATLAB中的绘图圆

我被要求找到不同的方法在MATLAB中绘制一个圆,

看起来很无聊.但是我可以提出一些想法(有些可能效率低下!),

方法1

ezpolar(@(x)1);
Run Code Online (Sandbox Code Playgroud)

方法2

t = linspace(0,2*pi,100);
plot(sin(t),cos(t));
Run Code Online (Sandbox Code Playgroud)

方法3

[X,Y,~] = cylinder(1,100);
plot(X(1,:),Y(1,:));
Run Code Online (Sandbox Code Playgroud)

方法4

ezplot('x^2 + y^2 - 1');
Run Code Online (Sandbox Code Playgroud)

方法5

theta = linspace(0,2*pi,100);
ro = ones(1,100);
[X,Y] = pol2cart(theta,ro);
plot(X,Y);
Run Code Online (Sandbox Code Playgroud)

它变得有趣.

如果你有其他想法,我很好奇.

谢谢.

Edit

方法11

azimuth = linspace(-pi,pi,100);
r = ones(1,100);
elevation = zeros(1,100);
[X,Y,Z] = sph2cart(azimuth,elevation,r);
patch(X,Y,Z)
%% (not sure how it works! any improvement suggestions?)
Run Code Online (Sandbox Code Playgroud)

matlab plot geometry graph

6
推荐指数
1
解决办法
1万
查看次数

仅通过矩阵转置内存不足

我有一个单元格,Data它包含三个数组,

 Data = 

[74003x253 double]    [8061x253 double]    [7241x253 double]
Run Code Online (Sandbox Code Playgroud)

我正在使用循环来读取这些数组并执行一些函数,

for ii = 1 : 3
    D = Data {ii} ;
    m = mean (D') ;
    // rest of the code
end
Run Code Online (Sandbox Code Playgroud)

哪个得到警告mean并说:

考虑为MEAN使用不同的DIMENSION输入参数

但是当我改成它时,

for ii = 1 : 3
    D = Data {ii}' ;
    m = mean (D) ;
    // rest of the code
end
Run Code Online (Sandbox Code Playgroud)

的内存不足错误.

比较两个代码,有人可以解释会发生什么吗?

似乎我只用复共轭转置得到了错误(我的数据是真正有价值的).

database matlab database-design signal-processing octave

5
推荐指数
2
解决办法
635
查看次数

通过矩形的随机路径

我想编写一个代码来生成一个给定大小的矩形的随机路径.

我将从这一点开始,(0,0)然后去upright达到xlimylim.

这是我的代码,

y = 10;
x = 10;
yOld = 0;
xOld = 0;
figure
axis([0 x 0 y])
while yOld < y && xOld < x
    DirectionChange = randi([0 1],1);
    if DirectionChange == 0
        yNew = yOld + 1;
        xNew = xOld;
    else
        xNew = xOld + 1;
        yNew = yOld;
    end
    line ([xOld xNew],[yOld yNew],'LineWidth',3);hold on
    yOld = yNew;
    xOld = xNew;
end
line ([xNew x],[yNew y],'LineWidth',3);hold …
Run Code Online (Sandbox Code Playgroud)

random matlab loops path while-loop

5
推荐指数
1
解决办法
153
查看次数

检查变量是否为布尔值

如何检查变量是否 boolean在MATLAB中?

我有一个功能

function myFunc(myBoolean)
  if myBoolean~=true && myBoolean~=false
  assert(false,'variable should be boolean);
end
x = test(myBoolean);
Run Code Online (Sandbox Code Playgroud)

如何改进?,是否有一个函数来检查变量是不是真/假?

matlab

3
推荐指数
1
解决办法
3950
查看次数

使用特定偏移向左和向右扩展列向量以形成2D矩阵 - MATLAB

我有一些随机长度的矢量,如,

a = [ 20
      78
      90
      180];

b = [ 54
      102
      1020];
Run Code Online (Sandbox Code Playgroud)

如何n = 3在每个元素之前和之后生成像整数一样的度量,如,

a1 = [17  18  19  20  21  22  23          b1 = [51   52   53   54   55   56   57
      75  76  77  78  79  80  81                99   100  101  102  103  104  105
      87  88  89  90  91  92  93                1017 1018 1019 1020 1021 1022 1023];
      177 178 179 180 181 182 183];
Run Code Online (Sandbox Code Playgroud)

没有任何循环,提前谢谢,

matlab vector vectorization

2
推荐指数
1
解决办法
99
查看次数

当一个维度未知时,在循环之前定义矩阵

我想在循环中为矩阵分配一些值,但我不知道有多少.B是基于Data(i,:)循环内的数据集计算的向量.元素的数量B在循环内部是固定的,但事先是未知的.

它像是;

A = zeros(n,m) %// I know n but I do not know m
for i = 1 : n
    % some code to calculate B from Data(i,:)
    A(i,:) = B;
end
Run Code Online (Sandbox Code Playgroud)

B是一个向量,但我不知道length(B)在循环之前所以我不能将它分配给m.
初始化时A = [];,Matlab发出警告

A 似乎在每次循环迭代中改变大小.

variables matlab loops matrix

2
推荐指数
1
解决办法
2264
查看次数

区分'inf'和'-inf'

我怎么能分开inf,并-inf从对方?

我有一个包含矩阵inf-inf我想要替换他们1e6-1e6分别.

例如,

a = [1 2 3 0 3 4]./[1 1 1 0 1 0];
b = log2([0 2 1 2 1 2]);
c = cat(1,a,b);
Run Code Online (Sandbox Code Playgroud)

这是,

c = [  1     2     3   NaN     3   Inf;
    -Inf     1     0     1     0     1];
Run Code Online (Sandbox Code Playgroud)

我想要,

newc = [   1   2   3   NaN   3   1e6;
        -1e6   1   0     1   0     1];
Run Code Online (Sandbox Code Playgroud)

我找不到一个分隔它们的函数.

谢谢.

arrays matlab matrix nan infinite

2
推荐指数
1
解决办法
77
查看次数

在MATLAB中的向量中找到10个最重复的元素

我想10在带有n元素的向量中找到大多数重复的元素,

(元素来自1-100)

有谁知道这是怎么做到的吗?

我知道如何在向量中找到最重复元素的那个但我不知道如何找到10个最重复的元素n并且未知.

arrays matlab matrix

2
推荐指数
1
解决办法
123
查看次数