实时搜索: matlab 怎么只用矩阵的前几个数

matlab 怎么只用矩阵的前几个数

876条评论 3591人喜欢 2699次阅读 224人点赞
我想知道怎样用MATLAB求解矩阵中连续出现数的个数比如我给你一个矩阵
A=[1 6 6 2 6 6 8 6 6 6 2 5 3 6 1 6 5 6 6 6 6 ]
求解A中6连续出现的次数,并把这个出现次数放在B矩阵中
得到的B=[0 2 0 0 2 0 0 3 0 0 0 0 0 1 0 1 0 4 0 0 0]
本人急用,哪位高手帮帮忙啊!!
不好意思是我没说清楚:这问题要求解有两个方面
1:要找出矩阵中出现次数最多的那个数a
2:要得到这个数在矩阵中连续出现的次数,且把次数放在...

matlab中矩阵怎么让不同行乘以不同数,要用matlab的自带函数: %假设有以下的矩阵A
A=[1 2 3;
   4 5 6;
   7 8 9];
%我们需要第一行乘以1,第二行乘以2,第三行乘以3
B=[1;
   2;
   3];
%B是一个列向量,存放没一行需要乘以的数
%先根据A的列数将B复制成和A大小一样的矩阵([1 1 1;2 2 2;3 3 3])
%然后再和A对应位置的元素相乘,就可以得到想要的结果C
C=A.*repmat(B,[1,size(A,2)]);

结果如下

A =

     1     2     3
     4     5     6
     7     8     9
     
B =

     1
     2
     3
     
C =

     1     2     3
     8    10    12
    21    24    27

还有一个更简单的办法

C=diag(B)*A;

用matlab设计一个1*n的01矩阵,矩阵里每10个数至少出现一个1,这个怎么用代码实现?: n=100;%n是多少你自己输入
a=rand(1,n)>0.5;
a(1:10:n)=1;
问题的提法等效于,任意两个1的间隔不能大于10。第三句即实现此功能。

求教高手!怎样用MATLAB求解一维矩阵中连续出现元素的个数: 这个功能是麻烦点,不过不难,我写了一个m函数,实现这个目标:
function r=hello(a)
if (~isvector(a))
error('a is not a vector');
r=[];
end
con=[];
num=[];

for n=1:length(a)
b=find(con==a(n));
if isempty(b)
con=[con,a(n)];
num=[num,1];
else
num(b)=num(b)+1;
end
end

[m,k]=max(num)
big=a(k)
flag=0;
last=[];

for n=length(a):-1:2
if (a(n)~=big)&(a(n-1)==big)
last(n)=0;flag=0;
elseif (a(n)~=big)&(a(n-1)~=big)
last(n)=0;flag=0;
elseif (a(n)==big)&(a(n-1)==big)
last(n)=0;flag=flag+1;
elseif (a(n)==big)&(a(n-1)~=big)
last(n)=flag+1;flag=0;
end
end

if a(1)==big
last(1)=flag+1;
else
last(1)=flag;
end

r=last;

%结束----------
%运行:
>> A=[1 6 6 2 6 6 8 6 6 6 2 5 3 6 1 6 5 6 6 6 6 ];
>> r=hello(A);
>> A=[1 6 6 2 6 6 8 6 6 6 2 5 3 6 1 6 5 6 6 6 6 ];
>> r=hello(A)

r =

Columns 1 through 11

0 2 0 0 2 0 0 3 0 0 0

Columns 12 through 21

0 0 1 0 1 0 4 0 0 0

>> C=[1 2 1 1 1 2 3 5 4 1 1 1 1 1 8 9 1 5 1 1 1];
>> r=hello(C)

r =

Columns 1 through 11

1 0 3 0 0 0 0 0 0 5 0

Columns 12 through 21

0 0 0 0 0 1 0 3 0 0

>> %结果就是你想要的。函数过程可以不看,直接写成m文件用就行了,我写了一两个小时呢,晕

现有一个10*40的矩阵,想在matlab中提取每一列数据分别赋给每个变量供使用,请问怎么操作?: 假设矩阵A为10*40, A(:,1)表示第一列,A(:,2)表示第二列,依次类推

如何用matlab判定 一个一维数组(矩阵)中的数互不相等: 不好意思,ikanchi兄弟,我来抢分,因为用组合,对大数组的性能不好

思路:去掉重复的数以后,如果长度变短了,就是有重复的。

function result = baidu(z)

result = length(unique(z))<length(z)

根据矩阵中数字的大小怎么用matlab生成渐变图,而且要求生成的是0.5*0.5的小方格: 0.5*0.5 就是图形单位吗?

matlab 中如何将一个i*j的矩阵中虚数元素都变为零: >> a = uint8([1 2 3 4;2 1 2 3;3 3 4 2;4 1 2 3]);
b = uint8([2 1 2 1;2 3 4 5;7 9 5 4;7 8 6 7]);
c = complex(a,b)
c =
1 + 2i 2 + 1i 3 + 2i 4 + 1i
2 + 2i 1 + 3i 2 + 4i 3 + 5i
3 + 7i 3 + 9i 4 + 5i 2 + 4i
4 + 7i 1 + 8i 2 + 6i 3 + 7i%%复数矩阵,直接取其实部就达到你的目的。
>> d=real(c)
d =
1 2 3 4
2 1 2 3
3 3 4 2
4 1 2 3

请问怎么用MATLAB的randsrc 函数随机产生一个1行8列的01矩阵g, 其中每个元素为1的概率是pv: a=dis_rand([1,0],[r,1-r],n);%生成非0值为m/(n+m)的序列

function y=dis_rand(x,p,n)
%dis_rand 产生离散分布随机数
% x:可能取值
% p:取值概率
% n:拟生成随机数的数目
cp=cumsum(p);
y=zeros(1,n);
for i=1:n
y(i)=x(sum(cp<=rand(1))+1);
end
%算法说明:利用matlab中的rand函数获取区间[0,1]上均匀分布的随机数,根据希望的分布律把[0,1]区间分段,
%各段的长度依次为随机数取各个可能值的概率。当那个均匀分布的随机数落在其中第i个小段上时,就把第i个可能取值输出。
%按照如下形式调用,其中,省略号处填上5个正数,和为0.6,n是你希望的数目,也就可以了。
%y=dis_rand([0 :1],[0.4 ......],n)

  • excel如何删除图片

    win10如何复制整张的加密ppt图片到另一个ppt中?: 直接选定复制,粘贴就可以了,如果变小了,调整下大小。PPT里面的图片大小都是调整的。 ...

    907条评论 1114人喜欢 2553次阅读 596人点赞
  • h6和gs5哪个好

    PPT由csp加密方式的,请问怎样破解?: 你好 楼主。 很幸运的看到你的问题。 但是又很遗憾到现在还没有人回答你的问题。也可能你现在已经在别的地方找到了答案,那就得恭喜你啦。 可能是你问的问题有些专业了,没人会。或者别人没有遇到或者接触过你的问题,所以帮不了...

    245条评论 4869人喜欢 5861次阅读 717人点赞
  • pe是什么膜

    优酷和PPTV聚力哪个好点?: 优酷好点。 但是片源不多。pptv更新比较快。但用着不舒服。 看你自己的喜好。优酷用的人多! ...

    738条评论 3157人喜欢 3185次阅读 656人点赞
  • 2014世界杯打多久

    不用home键怎样解锁ipad: 设置--通用--辅助功能--肢体活动里把AssistiveTouch打开 ...

    509条评论 3879人喜欢 3571次阅读 649人点赞
  • dnf更新的补丁在哪个文件夹

    我在PPT上的同一页上设置了多个箭头,想让它们被点击后,每一个箭头能够跳转到该幻灯片不同的页数上: 选择箭头后点右键,“链接”选“本文档位置”,在右侧可看到你要链接的页码,选择、确定 ...

    758条评论 5311人喜欢 3478次阅读 742人点赞
  • 五岁幼儿做包茎手术后如何护理

    一个二十多的人喜欢和十几岁的人玩是啥心理: 很正常啊,有什么奇怪的 ...

    668条评论 5708人喜欢 5416次阅读 873人点赞