我得到一个错误,怎么了?关于稀疏矩阵逻辑和答案
197次浏览(过去30天)
显示旧的注释
编写函数
稀疏矩阵是一个大矩阵,几乎所有元素的值都相同(通常为零)。稀疏矩阵的正常表示占用大量内存,而有用的信息可以用更少的内存捕获。表示稀疏矩阵的一种可能的方法是使用一个单元向量,其第一个元素是表示稀疏矩阵大小的2元素向量。第二个元素是一个标量,指定稀疏矩阵的默认值。单元格向量的每个连续元素都是一个3元素向量,表示稀疏矩阵中的一个元素,该元素具有不同于默认值的值。这三个元素分别是行索引、列索引和实际值。
编写一个名为“sparse2matrix”的函数,该函数接受上面定义的单元格向量的单个输入,并返回名为“matrix”的输出参数,即传统形式的矩阵。考虑下面的运行:
Cellvec = {[2 3], 0, [1 2 3], [2 2 -3]};
矩阵= sparse2matrix(cellvec)
矩阵=
0 3 0
0 -3 0
17日评论
穆罕默德·法赞·艾哈迈德
2023年1月1日16:09
编辑:穆罕默德·法赞·艾哈迈德
2023年1月1日16:10
函数矩阵= sparse2matrix(input_cell)
矩阵= [];
Sz = input_cell{1};矩阵尺寸%
默认值= input_cell{2};%默认值
矩阵= ones(sz)*默认值;
为I = 3: length(input_cell)
矩阵(input_cell{我}(1)input_cell{我}(2))= input_cell{我}(3);
结束
答案(28)
stanleo
2019年7月7日
%简单版本
函数矩阵= sparse2matrix(cellvec)
矩阵= cellvec{2}*ones(cellvec{1});
为m = 3:尺寸(cellvec, 2)
矩阵(cellvec {m} (1) cellvec {m} (2)) = cellvec {m} (3);
结束
AYUSH GURTU
2019年5月28日
函数(矩阵)= sparse2matrix (incell)
S =大小(incell);
q = S (2) 2;
msize = incell {1};
mdef = incell {2};
矩阵= repmat (mdef msize);
而问> 0
矩阵(incell {q + 2} (1) incell {q + 2} (2)) = incell {q + 2} (3);
Q = Q -1;
结束
3评论
穆罕默德·法赞·艾哈迈德
2023年1月1日16:10
函数矩阵= sparse2matrix(input_cell)
矩阵= [];
Sz = input_cell{1};矩阵尺寸%
默认值= input_cell{2};%默认值
矩阵= ones(sz)*默认值;
为I = 3: length(input_cell)
矩阵(input_cell{我}(1)input_cell{我}(2))= input_cell{我}(3);
结束
帕维尔Radko
2020年8月13日
编辑:帕维尔Radko
2020年8月13日
通过所有测试方案。可能不是最好的一个(因为我不知道如何建立默认矩阵更容易的方式),但工作100%。
使用输入“cellvec”指令构建一个名为“matrix”的矩阵
函数矩阵= sparse2matrix(cellvec)
首先,我们构建一个大小为ii*jj的默认矩阵
我们使用cellvec的第一个元素来得到矩阵的大小
为Ii = 1:cellvec{1}(1,1)
为Jj = 1:cellvec{1}(1,2)
%矩阵的所有元素等于cellvec的第2个元素
矩阵(ii,jj) = cellvec{2};
结束
结束
%现在我们需要改变默认矩阵的元素
这些元素的位置和值的%指示在"cellvec"中
从第3个元素到“cellvec”结尾的%
为Zz = 3:长度(cellvec)
%我们称之为“矩阵”元素,并从“cellvec”子数组的每3个元素中赋值给它们
矩阵(cellvec {zz} (1, 1), cellvec {zz}(1、2))= cellvec {zz}(1、3);
结束
结束
4评论
穆罕默德·法赞·艾哈迈德
2023年1月1日16:11
函数矩阵= sparse2matrix(input_cell)
矩阵= [];
Sz = input_cell{1};矩阵尺寸%
默认值= input_cell{2};%默认值
矩阵= ones(sz)*默认值;
为I = 3: length(input_cell)
矩阵(input_cell{我}(1)input_cell{我}(2))= input_cell{我}(3);
结束
辛格的阿布
2019年4月24日
函数(矩阵)= sparse2matrix (incell);
X =大小(incell);
q = X (2) 2;
msize = incell {1};
mdef = incell {2};
矩阵= repmat (mdef msize);
而Q > 0
矩阵(incell {q + 2} (1) incell {q + 2} (2)) = incell {q + 2} (3);
打破
结束
输出
矩阵=
0 0 0
0 -3 0
要求输出
矩阵=
0 3 0
0 -3 0
3评论
穆罕默德·法赞·艾哈迈德
2023年1月1日16:11
函数矩阵= sparse2matrix(input_cell)
矩阵= [];
Sz = input_cell{1};矩阵尺寸%
默认值= input_cell{2};%默认值
矩阵= ones(sz)*默认值;
为I = 3: length(input_cell)
矩阵(input_cell{我}(1)input_cell{我}(2))= input_cell{我}(3);
结束
Jaimin Motavar
2019年6月30日
编辑:Jaimin Motavar
2019年6月30日
你能告诉我这个答案有什么问题吗?
函数矩阵= sparse2matrix(a)
e =长度(一个);
兰德(b = {1});
[m, n] =大小(b);
c = {1,3};
d = {1 4};
为i = 1: m
为j = 1: n
b (i, j) = {1,2};
结束
结束
为g = 3: e
为f = (g2):(飞行)
p (f) = {1, g} (1,1);
结束
结束
为g = 3: e
为f = (g2):(飞行)
问(f) = {1, g}(1、2);
结束
结束
为g = 3: e
为f = (g2):(飞行)
r (f) = {1, g}(1、3);
结束
结束
为o = 1(飞行):
b (p (o)、(o)) = r (o);
结束
矩阵= b;
结束
1评论
穆罕默德·法赞·艾哈迈德
2023年1月1日16:11
函数矩阵= sparse2matrix(input_cell)
矩阵= [];
Sz = input_cell{1};矩阵尺寸%
默认值= input_cell{2};%默认值
矩阵= ones(sz)*默认值;
为I = 3: length(input_cell)
矩阵(input_cell{我}(1)input_cell{我}(2))= input_cell{我}(3);
结束
Litesh Ghute
2020年3月20日
我的代码出了什么问题?
函数矩阵= sparse2matrix (v)
垫= 0 ([v {1} (1), v {1} (2)));
r =大小(垫);
m = 3;
而M <= 4
我= v {m} (1);
j = v {m} (2);
垫(v {m} (i, j)) = v {m} (3);
m = m + 1;
结束
矩阵=垫;
结束
2的评论
穆罕默德·法赞·艾哈迈德
2023年1月1日16:11
函数矩阵= sparse2matrix(input_cell)
矩阵= [];
Sz = input_cell{1};矩阵尺寸%
默认值= input_cell{2};%默认值
矩阵= ones(sz)*默认值;
为I = 3: length(input_cell)
矩阵(input_cell{我}(1)input_cell{我}(2))= input_cell{我}(3);
结束
ABINAND PANDIYAN
2020年4月23日
编辑:ABINAND PANDIYAN
2020年4月23日
所有的测试用例都是正确的。试试这个
函数矩阵= sparse2matrix (cellvec)
一个= cellvec {1};
行= (1);
列= (2);
main_value = cellvec {2};
Sparse_matrix = main_value * ones(行,列);
len =长度(cellvec);
为我= 3:长度(cellvec)
Change = cellvec{i};
r =改变(1);
c =改变(2);
m =改变(3);
sparse_matrix (r, c) = m;
结束
矩阵= sparse_matrix;
结束
4评论
Thierno amadou mouctar balde
2020年12月29日
非常感谢!
使用变量len的一个建议是有效的
Len = length(cellvec);
为I = I = 3:len
...
......
结束
Samarth maheshkumar gemlawala
2020年5月15日
成功计算所有测试用例。
函数矩阵= sparse2matrix(a)
Cellvec = a
p =大小(cellvec)
Z = cellvec{1,1}
X = cellvec{1,2}
矩阵= 0 (z(1,1),z(1,2));
为i = 1: z (1, 1)
为j = 1: z(1、2)
矩阵(i,j) = x;
结束
结束
为J = 3: p(1,2)
Y = cellvec{1,j}
矩阵(y(1,1),y(1,2)) = y(1,3);
结束
Priyansh Kushwaha
2020年5月16日
编辑:Priyansh Kushwaha
2020年5月17日
函数矩阵= sparse2matrix (a)
b = {1}
b1 = b (1,1);
b2 = b(1、2);
e = 1 (b1, b2);
b = {1,2}
e = b。* (e);
为我= 3:长度(a)
c = {1,};
d1 = c (1);
d2 = c(1、2);
d3 = c(1、3);
e (d1, d2) = d3;
矩阵= e;
结束
矩阵= e;
结束
塔伊夫·艾哈迈德·比普尔
2020年5月24日
函数矩阵= sparse2matrix (cellvec)
m = (cellvec {1} (1) cellvec {1} (2));
m = m。* cellvec {2};
为我= 3:长度(cellvec)
米(cellvec{我}(1)cellvec{我}(2))= cellvec{我}(3);
结束
矩阵= m;
Shikha Thapa
2020年6月13日
函数矩阵= sparse2matrix (cellvec)
矩阵= cellvec{1,2} *的([cellvec {1} (1) cellvec {1} (2)));
为= 3:长度(cellvec)
矩阵(cellvec {1,} (1, 1), cellvec{1,}(1、2))= cellvec{1,}(1、3);
结束
Kumar Shubham
2020年7月12日
编辑:Kumar Shubham
2020年7月12日
函数矩阵= sparse2matrix(cellvec)
%创建req的矩阵。大小。
矩阵= 0 (cellvec {1});
%将分配的标量值分配给所有元素。
矩阵(:)=交易(cellvec {2});
%使用循环来处理矩阵的结果。
使用断点一步一步地查看结果的方法。
为Ii = 3:长度(cellvec)
矩阵(cellvec {2} (1, 1), cellvec{2}(1、2))= cellvec{2}(1、3);
结束
Ishani Uthpala
2020年8月1日
函数矩阵= sparse2matrix (v)
= v{1,2} * 1的矩阵(v {1 1} (1, 1), v{1 1}(1、2);
y =长度(v);
为x = 3: y
矩阵(v {x} (1,1), v {1, x}(1、2)v = {1, x}(1、3);
x = x + 1;
结束
矩阵;
结束
sushmanth pulavarthi
2020年8月3日
函数矩阵= sparse2matrix (v)
行v ={1}(1);列v = {1 1} (2);提取总数的%。sprase矩阵的行和列
级= v {2};%提取默认值
m = *级的(行、列);
为我= 3:长度(v)%创建循环用于更改默认值以外的值
r = v {} (1);
c = v {} (2);
m (r、c) = v{我}(3);
结束
矩阵= m;
结束
这适用于任何no。的元素
0评论
A.H.M.Shahidul伊斯兰教
2020年8月6日
% 100%准确
函数矩阵= sparse2matrix (m)
m =细胞(m);
m r = {1} (1); m c = {1} (2); dv = m {2};
党卫军=大小(m);
矩阵=稀疏(r、c) + dv;
q = ss(1、2);
为2 = 3:问
矩阵(m {2} (1) {2} (2)) = m {2} (3);
结束
阿卜杜勒·卡迪尔·汗
2020年11月6日
函数矩阵= sparse2matrix (cellvec)
M = cellvec{1}(1,1);
N = cellvec{1}(1,2);
= ones(m,n) .* cellvec{1,2};
为我= 3:长度(cellvec)
R1 = cellvec{i}(1,1);
C1 = cellvec{i}(1,2);
default (r1,c1) = cellvec{i}(1,3);
结束
矩阵=默认;
结束
0评论
阿尔贝托•吉尔
2020年12月29日
编辑:阿尔贝托•吉尔
2020年12月29日
你好,
你觉得这个代码怎么样?
函数矩阵= sparse2matrix (cll)
如果iscell (cll) = = 1
声明值,cs=数组的大小;Cdn =标称值;N =最大价值;
cs = cll {1};cdn = cll {1,2};N =大小(慢性淋巴细胞白血病,2);
用标称值和大小创建矩阵。
厘米= (cs) * cdn的;
为n = 3: n;
慢性淋巴细胞白血病cxdn = {1, n};
选择输入值中的值。
厘米(cxdn (1, 1), cxdn(1、2))= cxdn(1、3);
结束
矩阵=厘米;
其他的
错误(输入必须是单元格类);
结束
结束
Sumanth Bayya
2021年10月19日
编辑:Sumanth Bayya
2021年10月19日
函数M = sparse2matrix(cellvec)
Sz = cellvec{1};
Val = cellvec{2};
M = val*ones(sz);
为I = 3:length(cellvec)
El = cellvec{i};
M(el(1), el(2)) = el(3);
结束
结束
0评论
Ujwal Dhakal
2022年1月7日
函数矩阵= sparse2matrix (cellvec)
[a b] = size(cellvec);%存储b中单元格元素的数量,而a总是1,因为cellvec是一个向量
A = cellvec{1,1};%是加载到向量a中的矩阵的大小
default_element = cellvec {1,2};
%预分配矩阵大小为m*n,所有元素为默认值
为我= 1:(1)%a(1)是矩阵的行数
为j = 1: (2)%a(2)是矩阵的列数
矩阵(i, j) = cellvec {1,2};
结束
结束%矩阵生成时,所有元素设置为默认值
为2 = 3: b%此循环从单元格vec中的3个元素运行到no
矩阵(cellvec {1, 2} (1, 1), cellvec{1, 2}(1、2))= cellvec{1, 2}(1、3);
结束
0评论
Karnajit Banik
2022年1月26日
编辑:沃尔特·罗伯森
2022年10月15日
函数M = sparse2matrix(cellvec)
Sz = cellvec{1};
Val = cellvec{2};
M = val*ones(sz);
为I = 3:length(cellvec)
El = cellvec{i};
M(el(1), el(2)) = el(3);
结束
结束