Matlab中二进制矩阵中最大矩形太大怎么办

只需一步,快速开始
扫一扫,访问微社区
查看: 6154|回复: 11|关注: 0
如何给把一个大矩阵拆解为几个小矩阵并循环给矩阵命名
<h1 style="color:# 麦片财富积分
新手, 积分 6, 距离下一级还需 44 积分
[m,n]=size(E);
H=zeros(22294,3);
for i=1:22294:m
& & if i==1
& &&&H=E(1:22294*i,1:3);
& &&&eval(['H-',num2str(j),'=H']);
& &&&j=j+1;
& &H=E(22294*i:22294*(i+1),1:3);& &
& &eval(['H-',num2str(j),'=H']);
& & j=j+1;
我要将矩阵E的每22294行分解为一个小矩阵,打算命名为H1、H2、H3。。。。可是为甚么
&&在执行eval(['H-',num2str(j),'=H']);的时候会出现以下问题:
&&试图访问 num2str(1);由于 numel(num2str)=0,索引超出范围。
& &&&出错 onehour (line 15)
& &eval(['H-',num2str(j),'=H']);
论坛优秀回答者
关注者: 304
你可看下这个的第四个问题:
<h1 style="color:# 麦片财富积分
你可看下这个的第四个问题:
http://www.ilovematlab.cn/thread--1.html
好像里面关于第四个问题的前两种方法都不能用, 我是了,都是报错
这是第一种方法:
试图访问 num2str(1);由于 numel(num2str)=0,索引超出范围。
出错 xianong (line 2)
& & str=['a',num2str(ii),'=1:',num2str(ii)];
这是第二种方法:
元胞内容赋给非元胞数组对象。
出错 xianong (line 2)
& & a{ii}=1:
论坛优秀回答者
关注者: 304
好像里面关于第四个问题的前两种方法都不能用, 我是了,都是报错
这是第一种方法:
试图访问 num2str(1) ...
那不是两种方法,你所谓的第一种是错误范例,是说不该这么写
第二种首先你要确定aa是cell或者未声明,你这里的报错说明你的aa应该不是cell:
aa = cell(10,1);
for i = 1:10
aa{i} = 1:i
这是比较好的写法,你可以按照这种写法修改你的程序
<h1 style="color:# 麦片财富积分
那不是两种方法,你所谓的第一种是错误范例,是说不该这么写
第二种首先你要确定aa是cell或者未声明,你 ...
非常感谢你的答复,现在我已经把大的矩阵拆解为小的矩阵放在元胞数组里,A=cell{168,1},但是我想把元胞数组里的每一个矩阵都输出为txt文件,想利用循环,您有好的办法吗?我是初学者,请您包涵。
论坛优秀回答者
关注者: 304
非常感谢你的答复,现在我已经把大的矩阵拆解为小的矩阵放在元胞数组里,A=cell{168,1},但是我想把元 ...
你可以用dlmwrite输出矩阵
不过如果你保存到元胞里边只是为了输出txt那就没必要保存到元胞,你可以直接输出到txt
<h1 style="color:# 麦片财富积分
你可以用dlmwrite输出矩阵
不过如果你保存到元胞里边只是为了输出txt那就没必要保存到元胞,你可以直接输 ...
首先我要把大矩阵拆成小的矩阵,每22294行一个,得用到循环,在循环内部我需要个每个小矩阵命名,所以用到了元胞数组的方式,然后再把元胞数组里的矩阵输出为TXT文件,循环拆解矩阵并命名,你有好的办法吗
论坛优秀回答者
关注者: 304
|此回复为最佳答案
首先我要把大矩阵拆成小的矩阵,每22294行一个,得用到循环,在循环内部我需要个每个小矩阵命名,所以用 ...
你是要把每个矩阵存在一个txt中么,如果是的话也必要用cell:
a = rand(1000,3);
for k = 1:100:size(a,1)
& & t = a(k:k+99,:);
& & save(sprintf('mat%d.txt',ceil(k/100)),'t','-ascii','-double');
<h1 style="color:# 麦片财富积分
你是要把每个矩阵存在一个txt中么,如果是的话也必要用cell:
a = rand(1000,3);
for k = 1:100:size(a,1 ...
太感谢您了,解决了我的问题,谢谢!!!
<h1 style="color:# 麦片财富积分
您好,请问可否提供您最终的代码,最近也遇到这个问题,谢谢啦
站长推荐 /3
筑起功能安全的堡垒 - 基于模型设计的软件开发
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区matlab如何比较矩阵大小_百度知道
matlab如何比较矩阵大小
比较两个矩阵的大小matlab中有相应的语句吗?另外A、B两矩阵,A&B是说A中所有元素都大于B中对应元素,如果有一个元素小于的话,A&B还成立吗?
我有更好的答案
根据矩阵的存储性质,元素是列排的 1相邻上下元素比较2相邻左右元素比较3对角线元素比较(下标序号i+/-1,j+/-1)
采纳率:94%
来自团队:
矩阵比较大小, 这要看你怎么定义的A&B是说A中所有元素都大于B中对应元素既然这样定义, 如果有一个元素小于的话,A&B当然不成立min = min(min(A))
A中最小元max = max(max(B))
B中最大元如果 min & max按你的定义, 则有 A&B满意请采纳^_^
本回答被提问者采纳
matlab中,比较矩阵大小,其实是比较矩阵对应位置的大小,Aij和Bij比较,如C=A&B 如果Aij&Bij则结果Cij为1,否组为0;并不是你所得所有元素都大于B才是1。这种问题建议自己上机试试就知道了&& A=magic(3)A =
2&& B=A&#39;B =
2&& A&Bans =
弱弱的问一下,最后得到的0、1矩阵能说明啥问题?1越多说明A大吗?假如A、B两矩阵是某一大矩阵中两个同维子阵,要判断A&B用matlab表述:if A&B
continue.这样行吗?
为您推荐:
其他类似问题
matlab的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。MATLAB 关于矩阵过大超过内存限制问题_百度知道
MATLAB 关于矩阵过大超过内存限制问题
non = 1 - train1 - test1 - eye(max(size(train1,1),size(train1,2)));
size(train1)
所以在运行过程中出现
Error using
Maximum variable size allowed by the program is exceeded.
我想是不是前面...
我有更好的答案
你的计算里,每一个矩阵都太大了,超出了限制,不仅仅是全1矩阵。
对呀,那个eye矩阵也是,那个train1和test1矩阵式稀疏矩阵,所以占用内存少,能有什么办法解决吗
matlab里对稀疏阵有自己的存储方式,你可以查阅sparse()和full()两个命令看一下。不过你的矩阵恐怕是无法使用完整形式了。计算的话,只能自己用循环写算法了,直接调用命令肯定不行。
嗯嗯,果然只有用循环能做,不过有一点就是怎么用循环对除对角线以外的元素进行运算,就是eye那些数值为1的元素不动,其他元素进行运算。谢谢啦~
采纳率:79%
为您推荐:
其他类似问题
matlab的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。电脑内存不足,matlab处理不了这样的大矩阵,跪求解决办法? - 知乎有问题,上知乎。知乎作为中文互联网最大的知识分享平台,以「知识连接一切」为愿景,致力于构建一个人人都可以便捷接入的知识分享网络,让人们便捷地与世界分享知识、经验和见解,发现更大的世界。175被浏览<strong class="NumberBoard-itemValue" title="5分享邀请回答zhuanlan.zhihu.com/p/225203173可尝试,用octave进行int8数据载入进行简单的运算,降低矩阵维度,再装回matlab进行计算(octave命令行载入更加省内存,存储命令和matlab通用),这里可以了解下我的专栏~4,听楼上加个内存试试((/≧▽≦)/~┴┴ )不过最近内存条有点贵啊2添加评论分享收藏感谢收起

我要回帖

更多关于 最大子矩阵 的文章

 

随机推荐